UpdatePanelUpdateMode Enum

Definitie

Vertegenwoordigt de mogelijke updatemodi voor de inhoud in een UpdatePanel besturingselement.

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

Velden

Name Waarde Description
Always 0

De inhoud van het UpdatePanel besturingselement wordt bijgewerkt voor alle postbacks die afkomstig zijn van de pagina. Dit omvat asynchrone postbacks.

Conditional 1

Hiermee geeft u een aantal voorwaarden op waaronder de inhoud van het UpdatePanel besturingselement wordt bijgewerkt. Zie de sectie Opmerkingen voor meer informatie.

Voorbeelden

In het volgende voorbeeld worden twee UpdatePanel besturingselementen declareren. In het eerste deelvenster wordt de UpdatePanel.UpdateMode eigenschap ingesteld op Conditional. Het tweede deelvenster is UpdatePanel.UpdateMode standaard ingesteld Always op. Een knop buiten beide panelen wordt geregistreerd als een asynchroon postback-besturingselement met behulp van de ScriptManager.RegisterAsyncPostBackControl methode. In de klik-gebeurtenis-handler van de knop wordt de UpdatePanel.Update methode van het eerste deelvenster aangeroepen als er meer dan vijf seconden zijn verstreken sinds de laatste update. In dit scenario wordt de inhoud van het deelvenster alleen bijgewerkt als de laatste update van het deelvenster meer dan vijf seconden geleden was. De inhoud van het tweede deelvenster wordt altijd bijgewerkt.


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

Opmerkingen

De UpdatePanelUpdateMode opsomming wordt door de UpdatePanel.UpdateMode eigenschap gebruikt en definieert de mogelijke updatemodi voor de inhoud van een UpdatePanel besturingselement. Het UpdatePanel besturingselement vereist dat de ScriptManager.EnablePartialRendering eigenschap voor true het weergeven van gedeeltelijke pagina's plaatsvindt.

De standaardwaarde van de UpdatePanel.UpdateMode eigenschap is Always.

Als het UpdatePanel besturingselement zich in een ander UpdatePanel besturingselement bevindt en het bovenliggende deelvenster wordt bijgewerkt, wordt het geneste paneel ook bijgewerkt, ongeacht de UpdateMode eigenschapswaarde.

De Conditional waarde werkt de inhoud van het UpdatePanel besturingselement onder de volgende voorwaarden bij:

  • De UpdatePanel.Update methode wordt expliciet aangeroepen.

  • Een besturingselement wordt gedefinieerd als een trigger met behulp van de UpdatePanel.Triggers eigenschap en veroorzaakt een terugpost. In dit scenario is het besturingselement een expliciete trigger voor het bijwerken van de inhoud van het deelvenster. Het triggerbeheer kan zich binnen of buiten het UpdatePanel besturingselement bevinden dat de trigger definieert.

  • De UpdatePanel.ChildrenAsTriggers eigenschap is ingesteld op true en een onderliggend besturingselement van het UpdatePanel besturingselement veroorzaakt een terugpost. In dit scenario zijn onderliggende besturingselementen van het UpdatePanel besturingselement impliciete triggers voor het bijwerken van het deelvenster. Onderliggende besturingselementen van geneste UpdatePanel besturingselementen zorgen er niet voor dat het buitenste UpdatePanel besturingselement wordt bijgewerkt, tenzij ze expliciet zijn gedefinieerd als triggers.

Van toepassing op

Zie ook