Compartir vía


UpdatePanelUpdateMode Enumeración

Definición

Representa los posibles modos de actualización del contenido de un control UpdatePanel.

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

Campos

Always 0

El contenido del control UpdatePanel se actualiza para todas los postbacks que se originen en la página. Esta acción incluye postbacks asincrónicos.

Conditional 1

Especifica una serie de condiciones en las que se actualiza el contenido del UpdatePanel control; vea la sección Comentarios para obtener más información.

Ejemplos

En el ejemplo siguiente se declaran dos UpdatePanel controles. El primer panel establece la UpdatePanel.UpdateMode propiedad en Conditional. El segundo panel se ha UpdatePanel.UpdateMode establecido Always en de forma predeterminada. Un botón fuera de ambos paneles se registra como un control de postback asincrónico mediante el ScriptManager.RegisterAsyncPostBackControl método . En el controlador de eventos click del botón, se llama al UpdatePanel.Update método del primer panel si han transcurrido más de cinco segundos desde su última actualización. En este escenario, el contenido del panel solo se actualiza si la última actualización del panel fue hace más de cinco segundos. El contenido del segundo panel siempre se actualiza.


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

Comentarios

La UpdatePanelUpdateMode propiedad usa la UpdatePanel.UpdateMode enumeración y define los posibles modos de actualización para el contenido de un UpdatePanel control. El UpdatePanel control requiere que se true produzca la ScriptManager.EnablePartialRendering propiedad para que se produzca la representación parcial de páginas.

El valor predeterminado de la UpdatePanel.UpdateMode propiedad es Always.

Si el UpdatePanel control está dentro de otro UpdatePanel control y se actualiza el panel primario, el panel anidado también se actualizará independientemente del valor de la UpdateMode propiedad.

El Conditional valor actualiza el contenido del UpdatePanel control en las condiciones siguientes:

  • El UpdatePanel.Update método se llama explícitamente.

  • Un control se define como un desencadenador mediante la UpdatePanel.Triggers propiedad y provoca un postback. En este escenario, el control es un desencadenador explícito para actualizar el contenido del panel. El control de desencadenador puede estar dentro o fuera del UpdatePanel control que define el desencadenador.

  • La UpdatePanel.ChildrenAsTriggers propiedad se establece en true y un control secundario del UpdatePanel control provoca un postback. En este escenario, los controles secundarios del UpdatePanel control son desencadenadores implícitos para actualizar el panel. Los controles secundarios de los controles anidados UpdatePanel no hacen que el control externo UpdatePanel se actualice a menos que se definan explícitamente como desencadenadores.

Se aplica a

Consulte también