2009-10-20 33 views
6

Con tôi UpdatePanel cập nhật cả nội dung của nó và cập nhật nội dung của UpdatePanel.Nested UpdatePanel Triggers

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

Tôi không muốn cập nhật cho phụ huynh UpdatePanel mỗi khi con mình cập nhật.

Trả lời

5

Đặt UpdatePanel.UpdateMode Property thành Conditional.

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

Project Cool:

trẻ em Cập nhật Bảng điều chỉnh làm mới chỉ nội dung của nó và doesnt làm mới của Phụ Huynh Cập nhật Bảng điều chỉnh trừ khi, chế độ cập nhật cho bản cập nhật mẹ bảng điều khiển không được đặt để có điều kiện

CodeClimber:

Khi thiết lập để có điều kiện, các UpdatePanel sẽ được cập nhật chỉ trên postback nguồn gốc của điều khiển bên trong bảng điều khiển hoặc từ trigger quy định. Vì vậy, nếu bạn có nhiều bảng cập nhật và bạn không muốn cập nhật tất cả các bảng này để được cập nhật mỗi lần , bạn phải đặt UpdateMode thành Điều kiện.

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

</asp:UpdatePanel> 
+0

Đây là câu trả lời thực sự – Fandango68

2

Đây là những gì tôi làm

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

Trong đoạn mã sau sau khi ràng buộc UpdatePanel2 Controls với dữ liệu, gọi UpdatePanel2.Update(); Ajax chỉ cập nhật đánh dấu HTML trong "UpdatePanel2".

+0

Bạn không cần xử lý thông qua mã-đằng sau. Chỉ một ChildAsTriggers = false trên UpdatePanel đầu tiên là đủ. Ngoài ra, nếu bạn có ba hoặc nhiều tấm lồng nhau thì sao ?! – Fandango68