Udostępnij za pośrednictwem


UpdatePanelUpdateMode Wyliczenie

Definicja

Reprezentuje możliwe tryby aktualizacji dla zawartości w kontrolce UpdatePanel .

public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode = 
Public Enum UpdatePanelUpdateMode
Dziedziczenie
UpdatePanelUpdateMode

Pola

Always 0

Zawartość kontrolki UpdatePanel jest aktualizowana dla wszystkich ogłaszań zwrotnych pochodzących ze strony. Obejmuje to asynchroniczne ogłaszanie zwrotne.

Conditional 1

Określa liczbę warunków, w których zawartość kontrolki UpdatePanel jest aktualizowana; zobacz sekcję Uwagi, aby uzyskać więcej informacji.

Przykłady

W poniższym przykładzie zadeklarowane są dwie UpdatePanel kontrolki. Pierwszy panel ustawia UpdatePanel.UpdateMode właściwość na Conditional. Drugi panel ma UpdatePanel.UpdateMode domyślnie ustawioną Always wartość . Przycisk na zewnątrz obu paneli jest zarejestrowany jako asynchroniczna kontrolka ogłaszania zwrotnego ScriptManager.RegisterAsyncPostBackControl przy użyciu metody . W procedurze obsługi zdarzeń kliknięcia przycisku metoda pierwszego panelu jest wywoływana, UpdatePanel.Update jeśli od czasu ostatniej aktualizacji upłynęło więcej niż pięć sekund. W tym scenariuszu zawartość panelu jest aktualizowana tylko wtedy, gdy ostatnia aktualizacja panelu była większa niż pięć sekund temu. Zawartość drugiego panelu jest zawsze aktualizowana.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected DateTime LastUpdate
    {
        get
        {
            return (DateTime)(ViewState["LastUpdate"] ?? DateTime.Now);
        }
        set
        {
            ViewState["LastUpdate"] = value;
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (LastUpdate.AddSeconds(5.0) < DateTime.Now)
        {
            UpdatePanel1.Update();
            LastUpdate = DateTime.Now;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {

        ScriptManager1.RegisterAsyncPostBackControl(Button1);   
        if (!IsPostBack)
        {
            LastUpdate = DateTime.Now;
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanelUpdateMode Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1"
                               runat="server" />
            <asp:Panel ID="Panel1"
                       GroupingText="UpdatePanel1"
                       runat="server">
                <asp:UpdatePanel ID="UpdatePanel1"
                                 UpdateMode="Conditional"
                                 runat="server">
                    <ContentTemplate>
                        <p>
                            The content in this UpdatePanel only refreshes if five or more
                            seconds have passed since the last refresh and the button in
                            UpdatePanel2 was clicked. The time is checked
                            server-side and the UpdatePanel.Update() method is called. Last
                            updated: <strong>
                                <%= LastUpdate.ToString() %>
                            </strong>
                        </p>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:Panel>
            <asp:Panel ID="Panel2"
                       GroupingText="UpdatePanel2"
                       runat="server">
                <asp:UpdatePanel ID="UpdatePanel2"
                                 runat="server">
                    <ContentTemplate>
                        <p>
                            This UpdatePanel always refreshes if the button is clicked.
                            Last updated: <strong>
                                <%= DateTime.Now.ToString() %>
                            </strong>
                        </p>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:Panel>
            <asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_Click" />
        </div>
    </form>
</body>
</html>

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    Protected Property LastUpdate() As DateTime
        Get
            If ViewState("LastUpdate") IsNot Nothing Then
                Return ViewState("LastUpdate")
            Else : Return DateTime.Now()
            End If
        End Get
        Set(ByVal Value As DateTime)
            ViewState("LastUpdate") = Value
        End Set
    End Property

    Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
        If (LastUpdate.AddSeconds(5.0) < DateTime.Now) Then
            UpdatePanel1.Update()
            LastUpdate = DateTime.Now
        End If
    End Sub

    Protected Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
        ScriptManager1.RegisterAsyncPostBackControl(Button1)
        If Not IsPostBack Then
            LastUpdate = DateTime.Now
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanelUpdateMode Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1"
                               runat="server" />
            <asp:Panel ID="Panel1"
                       GroupingText="UpdatePanel1"
                       runat="server">
                <asp:UpdatePanel ID="UpdatePanel1"
                                   runat="server"
                                   UpdateMode="Conditional">
                    <ContentTemplate>
                        <p>
                            The content in this UpdatePanel only refreshes if five or more
                            seconds have passed since the last refresh and the button in
                            UpdatePanel2 was clicked. The time is checked
                            server-side and the UpdatePanel.Update() method is called. Last
                            updated: <strong>
                                <%= LastUpdate.ToString() %>
                            </strong>
                        </p>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:Panel>
            <asp:Panel ID="Panel2"
                       GroupingText="UpdatePanel2"
                       runat="server">
                <asp:UpdatePanel ID="UpdatePanel2"
                                 runat="server">
                    <ContentTemplate>
                        <p>
                            This UpdatePanel always refreshes if the button is clicked.
                            Last updated: <strong>
                                <%= DateTime.Now.ToString() %>
                            </strong>
                        </p>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:Panel>
            <asp:Button ID="Button1" Text="Button1" runat="server" OnClick="Button1_Click" />
        </div>
    </form>
</body>
</html>

Uwagi

Wyliczenie UpdatePanelUpdateMode jest używane przez UpdatePanel.UpdateMode właściwość i definiuje możliwe tryby aktualizacji zawartości kontrolki UpdatePanel . Kontrolka UpdatePanel wymaga, ScriptManager.EnablePartialRendering aby właściwość dotyczyła true renderowania częściowej strony.

Wartość domyślna UpdatePanel.UpdateMode właściwości to Always.

Jeśli kontrolka UpdatePanel znajduje się wewnątrz innej UpdatePanel kontrolki i zostanie zaktualizowany panel nadrzędny, zagnieżdżony panel zostanie również zaktualizowany niezależnie od UpdateMode wartości właściwości.

Wartość Conditional aktualizuje zawartość kontrolki UpdatePanel w następujących warunkach:

  • Metoda jest wywoływana UpdatePanel.Update jawnie.

  • Kontrolka jest definiowana jako wyzwalacz przy użyciu UpdatePanel.Triggers właściwości i powoduje ogłaszanie zwrotne. W tym scenariuszu kontrolka jest jawnym wyzwalaczem aktualizowania zawartości panelu. Kontrolka wyzwalacza może znajdować się wewnątrz lub poza kontrolką UpdatePanel definiującą wyzwalacz.

  • Właściwość jest ustawiona UpdatePanel.ChildrenAsTriggers na true , a kontrolka podrzędna kontrolki UpdatePanel powoduje ogłaszanie zwrotne. W tym scenariuszu UpdatePanel kontrolki podrzędne są niejawnymi wyzwalaczami aktualizowania panelu. Kontrolki podrzędne zagnieżdżonych UpdatePanel kontrolek nie powodują zaktualizowania zewnętrznej UpdatePanel kontrolki, chyba że są jawnie zdefiniowane jako wyzwalacze.

Dotyczy

Zobacz też