是否可以在同一页上并排使用两个独立的RadAjaxPanel控件?
我在同一个页面中使用了两个独立的RadAjaxPanels。一个面板包含一个TextBox和一个按钮。另一个包含一个RadGrid控件。当我点击面板#1中的按钮时,第二个面板消失了。我将visible=True放在了按钮单击事件中。
ASPX页面
<div>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1" Height="200px" Width="300px">
<table><tr><td><asp:Label ID="Label1" runat="server" Text="Name"></asp:Label> </td>
<td><%--<telerik:RadTextBox ID="RadTextBox1" runat="server">
</telerik:RadTextBox>--%><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td></tr>
<tr>
<td>
</td>
<td>
<telerik:RadButton ID="RdbtnAdd" runat="server" Text="Submit" CausesValidation="true"
ValidationGroup="AddButtonValidate" OnClick="RdbtnAdd_Click"
Width="75px">
</telerik:RadButton>
</td>
</tr>
</table>
</telerik:RadAjaxPanel>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Default">
</telerik:RadAjaxLoadingPanel>
<telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" LoadingPanelID="RadAjaxLoadingPanel2" Height="200px" Width="300px">
<table><tr><td><asp:Label ID="Label2" runat="server" Text="Name"></asp:Label> </td>
<td><%--<telerik:RadTextBox ID="RadTextBox2" runat="server">
</telerik:RadTextBox>--%><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</table>
</telerik:RadAjaxPanel>
</div>代码隐藏:
protected void RdbtnAdd_Click(object sender, EventArgs e)
{
Session["name"] = TextBox1.Text;
//RadAjaxPanel2.Visible = true;
TextBox2.Text = Session["name"].ToString();
}发布于 2012-09-28 03:33:26
您可以尝试将ajax管理器添加到您的页面。这将在您单击该按钮时强制执行ajax回发。
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RdbtnAdd">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1" />
<telerik:AjaxUpdatedControl ControlID="RadAjaxPanel2" LoadingPanelID="RadAjaxLoadingPanel2" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>或者,当您单击按钮时,可以尝试在第二个面板上强制执行ajax回发。所以在你的按钮点击事件添加...
ScriptManager.RegisterStartupScript(Page, this.GetType, "updatePanel", "$find('" + RadAjaxPanel2.ClientID + "').ajaxRequestWithTarget('" + RadAjaxPanel2.UniqueID + "', '');", true)这两种解决方案都应该有效。第二种方法只需要按钮单击事件中的一行,所以我会先试一试。
发布于 2012-09-27 20:22:58
可以,您可以拥有任意数量的RadAjaxpanel控件。但是,请注意,RadAjaxPanel的功能与UpdatePanel不同。一次只有一个RadAjaxPanel回发;但是,您可以调用客户端API ajaxRequest("arg");方法来刷新另一个。我从来没有遇到过一个面板消失的问题...我们可能需要查看一些代码才能进行调试。
还可以使用RadAjaxManager (或代理)定义当一个控件导致回发时应更新的AJAX控件。这样,当发生按钮单击时,您可以将更新链接到所有对象。
https://stackoverflow.com/questions/12616160
复制相似问题