c# - 嵌套的 RadAjaxPanel Telerik 不更新

标签 c# asp.net telerik updatepanel

我创建了一个带有一些内部控件的 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/

相关文章:

wpf - Telerik NumericUpDown 控件无法正确显示整数的空值

c# - 使用 Bouncy CaSTLe 加密和存储私钥+公钥

c# - 获取 Windows 资源管理器的进程句柄

c# - 将字符串写入 UTF-8 文件(无 BOM)时的奇怪行为 - 返回 ANSI 文件

c# - Specflow - 对任何关键字使用相同的步骤定义

asp.net - 我们可以获得访问特定网站的客户端的 IP 地址和/或机器吗?

javascript - 使用 jQuery 在每次输入按键时搜索列表项并隐藏其他项

c# - 如何在 asp.net webforms 中正确实现 PRG 模式

c# - 如何根据 GridView 列的路径打开文件位置?并且在我想创建一个 'hyper link' 的路径中

ios - 在企业 iOS 应用程序中,如何在现有配置文件过期后替换设备上的 *.mobileprovision 文件,但不重新签署 IPA?