2009-10-20 22 views
6

Moje dziecko UpdatePanel aktualizuje zarówno jego zawartość, jak i jej macierzystą UpdatePanel.Zagnieżdżone wyzwalacze UpdatePanel

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

Nie chcę, aby mój rodzic UpdatePanel był aktualizowany za każdym razem, gdy jego aktualizacje dziecka.

Odpowiedz

5

Ustaw UpdatePanel.UpdateMode Property na Conditional.

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

Project Cool:

Aktualizacja Child panel odświeża tylko jej zawartość i robi odświeżyć że od Aktualizacja panelu Parent chyba, tryb aktualizacji na aktualizację macierzystego panel nie jest ustawiony warunkowego

CodeClimber:

Przy ustawieniu warunkowych, których UpdatePanel będzie aktualizowany tylko na odświeżenie powstały w wyniku kontroli wewnątrz panelu lub z wyzwalaczy określony. Tak więc, jeśli masz wiele paneli aktualizacji i nie chcesz ich aktualizować co , musisz ustawić UpdateMode na Conditional.

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

</asp:UpdatePanel> 
+0

To jest prawdziwa odpowiedź. – Fandango68

2

To co robię

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

W kodzie za po związaniu UpdatePanel2 sterowania danymi, zadzwoń UpdatePanel2.Update(); Ajax aktualizuje tylko znaczniki HTML w "UpdatePanel2".

+0

Nie musisz jej obsługiwać za pośrednictwem kodu źródłowego. Wystarczy jeden znak ChildrenAsTriggers = false na pierwszym UpdatePanel. Poza tym, jeśli masz trzy lub więcej zagnieżdżonych paneli ?! – Fandango68

Powiązane problemy