我有嵌套的更新面板,两者都有自己的更新进度。现在,当我单击子更新面板内的按钮时,也会触发父项的更新进度。
如何解决这个问题?
<asp:UpdatePanel ID="UpdatePanelParent" runat="server">
<ContentTemplate>
...
... some controls
...
<asp:UpdatePanel ID="UpdatePanelChild" runat="server" >
<ContentTemplate>
...
... some controls
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgressChild" runat="server" AssociatedUpdatePanelID="UpdatePanelChild" DisplayAfter="0">
<ProgressTemplate>
Updating child...
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgressParent" runat="server" AssociatedUpdatePanelID="UpdatePanelParent" DisplayAfter="0">
<ProgressTemplate>
Updating parent...
</ProgressTemplate>
</asp:UpdateProgress>
答案 0 :(得分:0)
我建议您将设计修改为2个单独的更新面板,如下所示,而不是嵌套它们。
<asp:UpdatePanel ID="UpdatePanelParent" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblParent" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnParent" runat="server" Text="Button" OnClick="btnParent_Click" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnParent" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanelChild" runat="server">
<ContentTemplate>
<asp:Label ID="lblChild" runat="server" Text="Label"></asp:Label>
<asp:Button ID="btnChild" runat="server" Text="Button" OnClick="btnChild_Click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgressChild" runat="server" AssociatedUpdatePanelID="UpdatePanelChild"
DisplayAfter="0">
<ProgressTemplate>
Updating child...
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdateProgress ID="UpdateProgressParent" runat="server" AssociatedUpdatePanelID="UpdatePanelParent"
DisplayAfter="0">
<ProgressTemplate>
Updating parent...
</ProgressTemplate>
</asp:UpdateProgress>
自UpdatePanelParent
成为UpdateMode="Conditional"
后,只有在控件中指定Trigger
并且UpdatePanelChild
将始终更新时才会更新。{p>}因此,我希望保持预期的产出。