UpdatePanel.UpdateMode Eigenschaft

Definition

Ruft einen Wert ab, der angibt, dass der Inhalt eines UpdatePanel-Steuerelements aktualisiert wird, oder legt diesen fest.

public:
 property System::Web::UI::UpdatePanelUpdateMode UpdateMode { System::Web::UI::UpdatePanelUpdateMode get(); void set(System::Web::UI::UpdatePanelUpdateMode value); };
public System.Web.UI.UpdatePanelUpdateMode UpdateMode { get; set; }
member this.UpdateMode : System.Web.UI.UpdatePanelUpdateMode with get, set
Public Property UpdateMode As UpdatePanelUpdateMode

Eigenschaftswert

Einer der UpdatePanelUpdateMode-Werte. Der Standardwert ist Always.

Ausnahmen

Der angegebene Typ ist keiner der UpdatePanelUpdateMode-Werte.

Beispiele

Im folgenden Beispiel werden zwei UpdatePanel Steuerelemente deklariert. Im ersten Bereich ist die UpdateMode -Eigenschaft auf Conditionalfestgelegt. Im zweiten Bereich UpdateMode ist auf Alwaysfestgelegt. Eine Schaltfläche außerhalb beider Bereiche wird als asynchrones Postback-Steuerelement registriert, indem die RegisterAsyncPostBackControl -Methode des Steuerelements ScriptManager aufgerufen wird. Im Ereignishandler der Schaltfläche wird die Update Methode des ersten Bereichs Click aufgerufen, wenn seit der letzten Aktualisierung mehr als fünf Sekunden vergangen sind. In diesem Szenario wird der Inhalt des Bereichs nur aktualisiert, wenn die letzte Panelaktualisierung 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

Wenn sich ein Steuerelement nicht in einem UpdatePanel anderen UpdatePanel Steuerelement befindet, wird der Bereich entsprechend den Einstellungen der UpdateMode Eigenschaften und ChildrenAsTriggers sowie der Auflistung der Trigger aktualisiert. Wenn sich ein Steuerelement in einem UpdatePanel anderen UpdatePanel Steuerelement befindet, wird der untergeordnete Bereich automatisch aktualisiert, wenn der übergeordnete Bereich aktualisiert wird.

Der Inhalt eines Steuerelements UpdatePanel wird unter folgenden Umständen aktualisiert:

  • Wenn die UpdateMode -Eigenschaft auf Alwaysfestgelegt ist, wird der UpdatePanel Inhalt des Steuerelements bei jedem Postback aktualisiert, das von einer beliebigen Stelle auf der Seite stammt. Dies umfasst asynchrone Postbacks von Steuerelementen in anderen UpdatePanel Steuerelementen und Postbacks von Steuerelementen, die sich nicht innerhalb UpdatePanel von Steuerelementen befinden.

  • Wenn das UpdatePanel Steuerelement in einem anderen UpdatePanel Steuerelement geschachtelt ist und der übergeordnete Updatebereich aktualisiert wird.

  • Wenn die UpdateMode -Eigenschaft auf Conditionalfestgelegt ist und eine der folgenden Bedingungen auftritt:

    • Sie rufen die Update -Methode des -Steuerelements UpdatePanel explizit auf.

    • Das Postback wird durch ein Steuerelement verursacht, das als Trigger definiert ist, indem die Triggers -Eigenschaft des Steuerelements UpdatePanel verwendet wird. In diesem Szenario löst das Steuerelement explizit eine Aktualisierung des Panelinhalts aus. Das Steuerelement kann sich innerhalb oder außerhalb des Steuerelements befinden, das UpdatePanel den Trigger definiert.

    • Die ChildrenAsTriggers -Eigenschaft ist auf true festgelegt, und ein untergeordnetes Steuerelement des UpdatePanel Steuerelements bewirkt ein Postback. Ein untergeordnetes Steuerelement eines geschachtelten UpdatePanel Steuerelements bewirkt keine Aktualisierung des äußeren UpdatePanel Steuerelements, es sei denn, es ist explizit als Trigger definiert.

Gilt für:

Weitere Informationen