UpdatePanel.UpdateMode UpdatePanel.UpdateMode UpdatePanel.UpdateMode UpdatePanel.UpdateMode Property

Definición

Obtiene o establece un valor que indica cuándo un UpdatePanel se actualiza el contenido del control.Gets or sets a value that indicates when an UpdatePanel control's content is updated.

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

Valor de propiedad

Uno de los valores de UpdatePanelUpdateMode.One of the UpdatePanelUpdateMode values. De manera predeterminada, es Always.The default is Always.

Excepciones

El tipo especificado no es ninguno de los valores de UpdatePanelUpdateMode.The specified type is not one of the UpdatePanelUpdateMode values.

Ejemplos

En el ejemplo siguiente se declara dos UpdatePanel controles.The following example declares two UpdatePanel controls. En el primer panel, el UpdateMode propiedad está establecida en Conditional.In the first panel, the UpdateMode property is set to Conditional. En el panel de la segunda, UpdateMode está establecido en Always.In the second panel, UpdateMode is set to Always. Un botón situado fuera de los dos paneles se registra como un control de postback asincrónico mediante una llamada a la RegisterAsyncPostBackControl método de la ScriptManager control.A button outside both panels is registered as an asynchronous postback control by calling the RegisterAsyncPostBackControl method of the ScriptManager control. En el botón Click controlador de eventos, el Update se llama el método del primer panel si han transcurrido más de cinco segundos desde la última actualización.In the button's Click event handler, the Update method of the first panel is called if more than five seconds have elapsed since its last update. En este escenario, el contenido del panel se actualiza sólo si la última actualización del panel se produjo hace más de cinco segundos.In this scenario, the panel's content is updated only if the last panel refresh was more than five seconds ago. Siempre se actualiza el contenido del segundo panel.The content of the second panel is always updated.


<%@ 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 Not ViewState("LastUpdate") Is 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

Cuando un UpdatePanel control no está dentro de otro UpdatePanel se actualiza el panel de control, según lo determinado por la configuración de la UpdateMode y ChildrenAsTriggers propiedades, junto con la colección de desencadenadores.When an UpdatePanel control is not inside another UpdatePanel control, the panel is updated as determined by the settings of the UpdateMode and ChildrenAsTriggers properties, together with the collection of triggers. Cuando un UpdatePanel control está dentro de otro UpdatePanel control, el panel secundario se actualiza automáticamente cuando se actualiza el panel primario.When an UpdatePanel control is inside another UpdatePanel control, the child panel is automatically updated when the parent panel is updated.

El contenido de un UpdatePanel control se actualiza en las siguientes circunstancias:The content of an UpdatePanel control is updated in the following circumstances:

  • Si el UpdateMode propiedad está establecida en Always, el UpdatePanel contenido del control se actualiza en cada devolución de datos que se origina en cualquier lugar en la página.If the UpdateMode property is set to Always, the UpdatePanel control's content is updated on every postback that originates from anywhere on the page. Esto incluye asincrónicas de los controles dentro de otras UpdatePanel controles y las devoluciones de datos de los controles que no están dentro UpdatePanel controles.This includes asynchronous postbacks from controls inside other UpdatePanel controls and postbacks from controls that are not inside UpdatePanel controls.

  • Si el UpdatePanel control está anidado dentro de otro UpdatePanel se actualiza el control y el panel de actualización del elemento primario.If the UpdatePanel control is nested inside another UpdatePanel control and the parent update panel is updated.

  • Si el UpdateMode propiedad está establecida en Conditional, y se produce una de las condiciones siguientes:If the UpdateMode property is set to Conditional, and one of the following conditions occurs:

    • Se llama a la Update método de la UpdatePanel controlar explícitamente.You call the Update method of the UpdatePanel control explicitly.

    • La devolución de datos se debe a un control que se define como un desencadenador mediante el uso de la Triggers propiedad de la UpdatePanel control.The postback is caused by a control defined as a trigger by using the Triggers property of the UpdatePanel control. En este escenario, el control explícitamente desencadena una actualización del contenido del panel.In this scenario, the control explicitly triggers an update of the panel content. El control puede ser dentro o fuera del UpdatePanel control que define el desencadenador.The control can be either inside or outside the UpdatePanel control that defines the trigger.

    • El ChildrenAsTriggers propiedad está establecida en true y un control secundario de la UpdatePanel control produce un postback.The ChildrenAsTriggers property is set to true and a child control of the UpdatePanel control causes a postback. Un control secundario de un anidado UpdatePanel control no provoca una actualización en el exterior UpdatePanel controlar a menos que se define explícitamente como desencadenador.A child control of a nested UpdatePanel control does not cause an update to the outer UpdatePanel control unless it is explicitly defined as a trigger.

Se aplica a

Consulte también: