【发布时间】: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