我有一个嵌套的子UpdatePanel和父and。问题是,当子UpdatePanel被刷新/发布时,父节点中的UpdateProgress会被激活。我如何防止这种情况发生?结构是这样的:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate></ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate></ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<ContentTemplate>
<asp:UpdateProgress ID="UpdateProgress3" runat="server" AssociatedUpdatePanelID="UpdatePanel2">
<ProgressTemplate></ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>发布UpdatePanel2时,不会显示UpdateProgress3,但会显示UpdateProgress1和UpdateProgress2。我该怎么办?
发布于 2010-11-24 00:02:03
未指定UpdatePanel1的UpdateMode属性,因此它默认为Always,这意味着当页面上的任何其他UpdatePanel执行部分回发时,将刷新UpdatePanel1。
尝试在所有UpdatePanels中指定UpdateMode="Conditional"
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
</asp:UpdatePanel>发布于 2015-06-11 21:56:17
这里可以看到:http://www.asp.net/AJAX/Documentation/Live/overview/UpdateProgressOverview.aspx
如果UpdatePanel控件位于另一个更新面板内,则源自该子面板内的回发将导致显示与该子面板关联的任何UpdateProgress控件。它还显示与父面板关联的任何UpdateProgress控件。如果回发源自父面板的直接子控件,则只显示与父面板关联的UpdateProgress控件。这遵循了如何触发回发的逻辑。
因此,我认为您必须隐藏父UpdateProgress客户端:
您可以使用UpdateProgress类的JavaScript beginRequest和endRequest事件以编程方式控制何时显示PageRequestManager控件。在beginRequest事件处理程序中,显示表示UpdateProgress控件的DOM元素。在endRequest事件处理程序中,隐藏元素.
https://stackoverflow.com/questions/4257977
复制相似问题