嵌套的 RadAjaxPanel Telerik 不更新
我创建了一个带有一些内部控件的 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;
}
I create a RadAjaxPanel with some of inside controls.one of inside control is a nested radajax
with a TextBox and a button.both of radajaxpanel update mode are always(in code behind).
when i click on button in nested radajax parent radajax will be update an nested radajax will be hide!!Why?
I test this scenario with updatepanel and worked correct...
Markup:
<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>
Code Behind:
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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要将
RadAjaxPanel
嵌套在另一个RadAjaxPanel
中。我在您的代码中也看不到任何值得这样做的内容,因此最简单的解决方案就是删除它。如果您想更好地控制哪些控件是 AJAX 驱动的,我建议改用 RadAjaxManager:
看起来第二个 RadAjaxPanel 只是设置了固定宽度。只需使用常规的
Panel
或 DIV 即可完成此操作。You don't need to have a
RadAjaxPanel
nested inside of anotherRadAjaxPanel
. I can't see anything in your code that warrants it either, so the easiest solution would be to remove it.If you want to have more control over which controls are AJAX driven, I would suggest using the
RadAjaxManager
instead:It looks like the second
RadAjaxPanel
is just setting a fixed width. Just use a regularPanel
or a DIV for this and you should be all set.