2009-10-20 100 views
6

我的孩子UpdatePanel更新其内容和它的父UpdatePanel的内容。嵌套UpdatePanel触发器

<asp:UpdatePanel ID="UpdatePanel1" 
       runat="server"> 
    ... 
    <asp:UpdatePanel ID="UpdatePanel2" 
        runat="server"> 
     ... 
    </asp:UpdatePanel> 
    ... 
</asp:UpdatePanel> 

我不希望我的父UpdatePanel每次更新其子更新。

回答

5

UpdatePanel.UpdateMode Property设置为Conditional

<asp:UpdatePanel ID="UpdatePanel1" 
       UpdateMode="Conditional" 
       runat="server"> 
    ... 
</asp:UpdatePanel> 

Project Cool

儿童更新面板仅刷新其 内容和犯规刷新的 父更新面板,除非父更新 更新模式 面板没有设置为条件

CodeClimber

当设置为条件,所述 的UpdatePanel将仅在回发 起源通过控制内部 面板或从触发器来更新 指定。因此,如果您有多个 更新面板,并且您不希望更新所有这些更新,并且每 时间更新一次,则必须将UpdateMode 设置为有条件。

6
<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="False" 
       UpdateMode="Conditional" 
       runat="server"> 

</asp:UpdatePanel> 
+0

这是真正的答案 – Fandango68 2016-07-06 01:13:55

2

这是我做的

<asp:UpdatePanel ID="UpdatePanel1" ChildrenAsTriggers="False" 
       UpdateMode="Conditional" runat="server"> 
    ... 
    <asp:UpdatePanel ID="UpdatePanel2" ChildrenAsTriggers="False" 
       UpdateMode="Conditional" runat="server"> 
     ... 
    </asp:UpdatePanel> 
    ... 
</asp:UpdatePanel> 

在代码结合UpdatePanel2数据控件后的背后,调用UpdatePanel2.Update(); Ajax只更新“UpdatePanel2”中的HTML标记。

+0

你不需要通过代码隐藏来处理它。在第一个UpdatePanel上只需要一个ChildrenAsTriggers = false就足够了。此外,如果您有三个或更多嵌套面板? – Fandango68 2016-07-06 01:14:58