【问题标题】:Static content of UpdatePanel disappear after partial postbackUpdatePanel 的静态内容在部分回发后消失
【发布时间】:2015-02-24 00:30:54
【问题描述】:

我已经搜索过这个问题,但是关于这个问题的问题对我没有帮助。首先,我正在潜入 Ajax 领域并且对它不是很熟悉。我创建了一个非常简单的 WebUserControl,它基本上是一个联系表单。用户控件的 html 是,

<telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server">
<AjaxSettings>
    <telerik:AjaxSetting AjaxControlID="btnSubmitContactForm">
        <UpdatedControls>
            <telerik:AjaxUpdatedControl ControlID="upContactForm" LoadingPanelID="RALP_ContactForm" />
        </UpdatedControls>
    </telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>


<telerik:RadAjaxLoadingPanel ID="RALP_ContactForm" runat="server" Transparency="5">
                <img src="images/cf_animation.GIF" alt="Processing Request..." />
</telerik:RadAjaxLoadingPanel>

<asp:UpdatePanel ID="upContactForm" runat="server">
<ContentTemplate>
    <div id="form-main">
        <div id="form-div">
            <p class="name">
                <asp:TextBox ID="txtContactName" runat="server"></asp:TextBox>
            </p>
            <p>
                <asp:TextBox ID="txtContactEmail" runat="server"></asp:TextBox>
            </p>
            <p>
                <asp:TextBox ID="txtContactComment" TextMoe="MultiLine" runat="server"></asp:TextBox>
            </p>
            <p><asp:Label ID="lblMessage" runat="server" Visible="false"></asp:Label></p>
            <div>
                <asp:Button ID="btnSubmitContactForm" runat="server"
                    Text="SEND" OnClick="btnSubmitContactForm_Click" />
            </div>
        </div>
    </div>

如您所见,控件非常简单。我在我的主页上调用控件,

<uc1:FooterContactForm ID="FooterContactForm" runat="server"></uc1:FooterContactForm>

现在它在渲染时运行得非常好。当我单击“发送”按钮时,会显示加载图像,并在服务器端表单内容通过电子邮件发送给我。

当这个过程完成后,页脚突然消失了。这不仅是在用户控制的情况下,而且当我在没有用户控制的情况下实现它时,UpdatePanel 的内容就会消失。当我在服务器端发送电子邮件后输入以下代码行时,内容可见且不会消失。

upContactForm.Update();

这个完整填写的联系表格消失问题。但是当我尝试重置 TextBoxes 时,它给了我一个错误,即为了更新更新面板,我必须将 UpdateMode 设置为有条件的。当我将 UpdateMode 设置为有条件时,错误消失了,但回发后联系表单再次消失。

专家请帮我解决这个问题,因为我不知道这里发生了什么。

【问题讨论】:

  • 我发现 UpdatePanel 正在消失,因为父页面上的 AjaxManager。当我从父页面中删除 AjaxManager 时,控件不会消失,但不会显示通过 RadAjaxLoadingPanel 加载的图像。为什么 AjaxManager 会这样做?

标签: asp.net telerik asp.net-ajax updatepanel webusercontrol


【解决方案1】:

您不得将 RadAjaxManager/RadAjaxManagerProxy/RadAjaxPanel 中的 AJAX 设置与 UpdatePanel 嵌套,因为嵌套更新面板可能无法预测。

这是一个应该可以正常工作的设置:

        <telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="btnSubmitContactForm">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RALP_ContactForm" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManagerProxy>

        <telerik:RadAjaxLoadingPanel ID="RALP_ContactForm" runat="server" Transparency="5">
            <img src="images/cf_animation.GIF" alt="Processing Request..." />
        </telerik:RadAjaxLoadingPanel>

        <asp:Panel ID="Panel1" runat="server">
            <div id="form-main">
                <div id="form-div">
                    <p class="name">
                        <asp:TextBox ID="txtContactName" runat="server"></asp:TextBox>
                    </p>
                    <p>
                        <asp:TextBox ID="txtContactEmail" runat="server"></asp:TextBox>
                    </p>
                    <p>
                        <asp:TextBox ID="txtContactComment" TextMoe="MultiLine" runat="server"></asp:TextBox>
                    </p>
                    <p>
                        <asp:Label ID="lblMessage" runat="server" Visible="false"></asp:Label>
                    </p>
                    <div>
                        <asp:Button ID="btnSubmitContactForm" runat="server"
                                    Text="SEND" OnClick="btnSubmitContactForm_Click" />
                    </div>
                </div>
            </div>
        </asp:Panel>

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
相关资源
最近更新 更多