Teilen über


UpdatePanelUpdateMode Enumeration

Definition

Stellt den möglichen Aktualisierungsmodus in einem UpdatePanel-Steuerelement dar.

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

Felder

Always 0

Der Inhalt des UpdatePanel-Steuerelements wird für alle Postbacks aktualisiert, die aus der Seite stammen. Dazu gehören asynchrone Postbacks.

Conditional 1

Gibt eine Reihe von Bedingungen an, unter denen der Inhalt des UpdatePanel Steuerelements aktualisiert wird. Weitere Informationen finden Sie im Abschnitt Hinweise.

Beispiele

Im folgenden Beispiel werden zwei UpdatePanel Steuerelemente deklariert. Im ersten Bereich wird die UpdatePanel.UpdateMode -Eigenschaft auf Conditionalfestgelegt. Der zweite Bereich ist UpdatePanel.UpdateMode standardmäßig auf Always festgelegt. Eine Schaltfläche außerhalb beider Bereiche wird mithilfe der ScriptManager.RegisterAsyncPostBackControl -Methode als asynchrones Postback-Steuerelement registriert. Im Klickereignishandler der Schaltfläche wird die UpdatePanel.Update Methode des ersten Bereichs aufgerufen, wenn seit der letzten Aktualisierung mehr als fünf Sekunden vergangen sind. In diesem Szenario wird der Inhalt des Bereichs nur aktualisiert, wenn das letzte Panelupdate mehr als fünf Sekunden zurückliegt. Der Inhalt des zweiten Bereichs wird immer aktualisiert.


<%@ 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>

Hinweise

Die UpdatePanelUpdateMode Enumeration wird von der UpdatePanel.UpdateMode -Eigenschaft verwendet und definiert die möglichen Aktualisierungsmodi für den Inhalt eines Steuerelements UpdatePanel . Für UpdatePanel das Steuerelement muss true die ScriptManager.EnablePartialRendering -Eigenschaft für das Partielle Seitenrendering erfolgen.

Der Standardwert der UpdatePanel.UpdateMode -Eigenschaft ist Always.

Wenn sich das UpdatePanel Steuerelement in einem anderen UpdatePanel Steuerelement befindet und der übergeordnete Bereich aktualisiert wird, wird auch der geschachtelte Bereich unabhängig vom UpdateMode Eigenschaftswert aktualisiert.

Der Conditional Wert aktualisiert den Inhalt des UpdatePanel Steuerelements unter den folgenden Bedingungen:

  • Die UpdatePanel.Update -Methode wird explizit aufgerufen.

  • Ein Steuerelement wird mithilfe der UpdatePanel.Triggers -Eigenschaft als Trigger definiert und verursacht ein Postback. In diesem Szenario ist das Steuerelement ein expliziter Trigger zum Aktualisieren des Bereichsinhalts. Das Triggersteuerelement kann sich innerhalb oder außerhalb des UpdatePanel Steuerelements befinden, das den Trigger definiert.

  • Die UpdatePanel.ChildrenAsTriggers -Eigenschaft ist auf true festgelegt, und ein untergeordnetes Steuerelement des UpdatePanel Steuerelements bewirkt ein Postback. In diesem Szenario sind untergeordnete Steuerelemente des UpdatePanel Steuerelements implizite Trigger für die Aktualisierung des Bereichs. Untergeordnete Steuerelemente geschachtelter UpdatePanel Steuerelemente führen nicht dazu, dass das äußere UpdatePanel Steuerelement aktualisiert wird, es sei denn, sie sind explizit als Trigger definiert.

Gilt für:

Weitere Informationen