2009-10-20 105 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