我创建了一个带有一些内部控件的 RadAjaxPanel。其中一个内部控件是嵌套的 radajax
带有一个文本框和一个按钮。 radajaxpanel 更新模式总是(在代码后面)。
当我单击嵌套 radajax 中的按钮时,父 radajax 将被更新,嵌套的 radajax 将被隐藏!为什么?
我用 updatepanel 测试了这个场景并且工作正常......
标记:
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server"
onajaxsettingcreated="RadAjaxPanel1_AjaxSettingCreated1">
<asp:TextBox runat="server" ID="txt2" />
<asp:Button Text="but1" ID="but" runat="server" onclick="but_Click" />
<telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" Height="200px"
Width="300px" onajaxsettingcreated="RadAjaxPanel2_AjaxSettingCreated">
<asp:TextBox runat="server" ID="txt" />
<asp:Button Text="but2" ID="but2" runat="server" onclick="but2_Click" />
</telerik:RadAjaxPanel>
</telerik:RadAjaxPanel>
背后的代码:
protected void but_Click(object sender, EventArgs e)
{
txt.Text = "ok";
txt2.Text = "ok";
}
protected void but2_Click(object sender, EventArgs e)
{
txt.Text = "ok";
txt2.Text = "ok";
}
protected void RadAjaxPanel1_AjaxSettingCreated1(object sender, Telerik.Web.UI.AjaxSettingCreatedEventArgs e)
{
e.UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Always;
}
protected void RadAjaxPanel2_AjaxSettingCreated(object sender, Telerik.Web.UI.AjaxSettingCreatedEventArgs e)
{
e.UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Always;
}
最佳答案
您不需要将 RadAjaxPanel
嵌套在另一个 RadAjaxPanel
中。我也看不到您的代码中的任何内容,因此最简单的解决方案是将其删除。
如果您想更好地控制哪些控件是 AJAX 驱动的,我建议改用 RadAjaxManager
:
<telerik:RadAjaxManager ID="AjaxManager" runat="server" UpdatePanelsRenderMode="Inline">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="MyControl">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="MyOtherControl" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
看起来第二个
RadAjaxPanel
只是设置了固定宽度。只需为此使用常规的 Panel
或 DIV,您就应该准备就绪。关于c# - 嵌套的 RadAjaxPanel Telerik 不更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7613294/