UpdatePanelUpdateMode Enumerazione

Definizione

Rappresenta le possibili modalità di aggiornamento per il contenuto in un controllo UpdatePanel.

public enum class UpdatePanelUpdateMode
public enum UpdatePanelUpdateMode
type UpdatePanelUpdateMode = 
Public Enum UpdatePanelUpdateMode
Ereditarietà
UpdatePanelUpdateMode

Campi

Always 0

Il contenuto del controllo UpdatePanel viene aggiornato per tutti i postback che hanno origine dalla pagina. Sono inclusi i postback asincroni.

Conditional 1

Specifica una serie di condizioni in cui il contenuto del UpdatePanel controllo viene aggiornato. Per altre informazioni, vedere la sezione Osservazioni.

Esempio

Nell'esempio seguente vengono dichiarati due UpdatePanel controlli. Il primo pannello imposta la UpdatePanel.UpdateMode proprietà su Conditional. Il secondo pannello è UpdatePanel.UpdateMode impostato su Always per impostazione predefinita. Un pulsante esterno a entrambi i pannelli viene registrato come controllo postback asincrono usando il ScriptManager.RegisterAsyncPostBackControl metodo . Nel gestore eventi click del pulsante viene chiamato il UpdatePanel.Update metodo del primo pannello se sono trascorsi più di cinque secondi dall'ultimo aggiornamento. In questo scenario, il contenuto del pannello viene aggiornato solo se l'ultimo aggiornamento del pannello era più di cinque secondi fa. Il contenuto del secondo pannello viene sempre aggiornato.


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

Commenti

L'enumerazione UpdatePanelUpdateModeUpdatePanel.UpdateMode viene usata dalla proprietà e definisce le possibili modalità di aggiornamento per il contenuto di un UpdatePanel controllo. Il UpdatePanel controllo richiede che la proprietà venga true eseguita per il ScriptManager.EnablePartialRendering rendering parziale della pagina.

Il valore predefinito della UpdatePanel.UpdateMode proprietà è Always.

Se il UpdatePanel controllo si trova all'interno di un altro UpdatePanel controllo e il pannello padre viene aggiornato, il pannello annidato verrà aggiornato anche indipendentemente dal valore della UpdateMode proprietà.

Il Conditional valore aggiorna il contenuto del UpdatePanel controllo nelle condizioni seguenti:

  • Il UpdatePanel.Update metodo viene chiamato in modo esplicito.

  • Un controllo viene definito come trigger usando la UpdatePanel.Triggers proprietà e causa un postback. In questo scenario, il controllo è un trigger esplicito per l'aggiornamento del contenuto del pannello. Il controllo trigger può essere all'interno o all'esterno del UpdatePanel controllo che definisce il trigger.

  • La UpdatePanel.ChildrenAsTriggers proprietà è impostata su true e un controllo figlio del UpdatePanel controllo causa un postback. In questo scenario i controlli figlio del controllo sono trigger impliciti per l'aggiornamento UpdatePanel del pannello. I controlli figlio dei controlli annidati UpdatePanel non causano l'aggiornamento del controllo esterno UpdatePanel a meno che non siano definiti in modo esplicito come trigger.

Si applica a

Vedi anche