UpdatePanelUpdateMode Enum

Definition

Representerar möjliga uppdateringslägen för innehållet i en UpdatePanel kontroll.

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

Fält

Name Värde Description
Always 0

Innehållet i UpdatePanel kontrollen uppdateras för alla postbacks som kommer från sidan. Detta inkluderar asynkrona postbacks.

Conditional 1

Anger ett antal villkor under vilka innehållet i UpdatePanel kontrollen uppdateras. Mer information finns i avsnittet Kommentarer.

Exempel

I följande exempel deklareras två UpdatePanel kontroller. Den första panelen anger egenskapen UpdatePanel.UpdateMode till Conditional. Den andra panelen har UpdatePanel.UpdateMode angetts till Always som standard. En knapp utanför båda panelerna registreras som en asynkron postback-kontroll med hjälp ScriptManager.RegisterAsyncPostBackControl av metoden . I knappens klickhändelsehanterare UpdatePanel.Update anropas metoden för den första panelen om mer än fem sekunder har förflutit sedan den senaste uppdateringen. I det här scenariot uppdateras panelens innehåll endast om den senaste paneluppdateringen var för mer än fem sekunder sedan. Den andra panelens innehåll uppdateras alltid.


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

Kommentarer

Uppräkningen UpdatePanelUpdateMode används av UpdatePanel.UpdateMode egenskapen och definierar möjliga uppdateringslägen för innehållet i en UpdatePanel kontroll. Kontrollen UpdatePanel kräver att egenskapen ScriptManager.EnablePartialRendering är true för att delvis sidåtergivning ska ske.

Standardvärdet för UpdatePanel.UpdateMode egenskapen är Always.

Om kontrollen UpdatePanel finns i en annan UpdatePanel kontroll och den överordnade panelen uppdateras uppdateras även den kapslade panelen oavsett egenskapsvärdet UpdateMode .

Värdet Conditional uppdaterar kontrollens UpdatePanel innehåll under följande villkor:

  • Metoden UpdatePanel.Update anropas explicit.

  • En kontroll definieras som en utlösare med hjälp UpdatePanel.Triggers av egenskapen och orsakar ett återanrop. I det här scenariot är kontrollen en explicit utlösare för att uppdatera panelinnehållet. Utlösarkontrollen kan vara antingen inuti eller utanför den UpdatePanel kontroll som definierar utlösaren.

  • Egenskapen UpdatePanel.ChildrenAsTriggers är inställd på true och en underordnad UpdatePanel kontroll av kontrollen orsakar ett återanrop. I det här scenariot är underordnade kontroller av UpdatePanel kontrollen implicita utlösare för att uppdatera panelen. Underordnade kontroller av kapslade UpdatePanel kontroller gör inte att den yttre UpdatePanel kontrollen uppdateras om de inte uttryckligen definieras som utlösare.

Gäller för

Se även