UpdatePanel.UpdateMode Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft wanneer de inhoud van een UpdatePanel besturingselement wordt bijgewerkt.

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

Waarde van eigenschap

Een van de UpdatePanelUpdateMode waarden. De standaardwaarde is Always.

Uitzonderingen

Het opgegeven type is geen van de UpdatePanelUpdateMode waarden.

Voorbeelden

In het volgende voorbeeld worden twee UpdatePanel besturingselementen declareren. In het eerste deelvenster is de UpdateMode eigenschap ingesteld op Conditional. In het tweede deelvenster UpdateMode is ingesteld op Always. Een knop buiten beide panelen wordt geregistreerd als een asynchroon postback-besturingselement door de RegisterAsyncPostBackControl methode van het ScriptManager besturingselement aan te roepen. In de gebeurtenis-handler van de knop Click wordt de 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 vernieuwing 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

Wanneer een besturingselement zich niet in een UpdatePanel ander UpdatePanel besturingselement bevindt, wordt het paneel bijgewerkt zoals wordt bepaald door de instellingen van de UpdateMode en ChildrenAsTriggers eigenschappen, samen met de verzameling triggers. Wanneer een besturingselement zich in een UpdatePanel ander UpdatePanel besturingselement bevindt, wordt het onderliggende deelvenster automatisch bijgewerkt wanneer het bovenliggende deelvenster wordt bijgewerkt.

De inhoud van een UpdatePanel besturingselement wordt in de volgende omstandigheden bijgewerkt:

  • Als de UpdateMode eigenschap is ingesteld op Always, wordt de inhoud van het UpdatePanel besturingselement bijgewerkt op elke postback die vanaf elke locatie op de pagina afkomstig is. Dit omvat asynchrone postbacks van besturingselementen in andere UpdatePanel besturingselementen en postbacks van besturingselementen die zich niet in UpdatePanel besturingselementen bevinden.

  • Als het UpdatePanel besturingselement in een ander UpdatePanel besturingselement is genest en het bovenliggende updatepaneel wordt bijgewerkt.

  • Als de UpdateMode eigenschap is ingesteld op Conditionalen een van de volgende voorwaarden optreedt:

    • U roept de Update methode van het UpdatePanel besturingselement expliciet aan.

    • De terugpost wordt veroorzaakt door een besturingselement dat is gedefinieerd als een trigger met behulp van de Triggers eigenschap van het UpdatePanel besturingselement. In dit scenario activeert het besturingselement expliciet een update van de inhoud van het deelvenster. Het besturingselement kan zich binnen of buiten het UpdatePanel besturingselement bevinden dat de trigger definieert.

    • De ChildrenAsTriggers eigenschap is ingesteld op true en een onderliggend besturingselement van het UpdatePanel besturingselement veroorzaakt een terugpost. Een onderliggend besturingselement van een geneste UpdatePanel besturingselement veroorzaakt geen update naar het buitenste UpdatePanel besturingselement, tenzij dit expliciet is gedefinieerd als een trigger.

Van toepassing op

Zie ook