编程语言
首页 > 编程语言> > c# – 嵌套RadAjaxPanel Telerik不更新

c# – 嵌套RadAjaxPanel Telerik不更新

作者:互联网

我用一些内部控件创建一个RadAjaxPanel.内部控件中的一个是嵌套的radajax
使用TextBox和button.both的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,asp-net,updatepanel,telerik
来源: https://codeday.me/bug/20190626/1293994.html