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

Definición

Obtiene o establece un valor que indica cuándo se actualiza un control de contenido UpdatePanel.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 siguiente ejemplo se declaran dos UpdatePanel controles.The following example declares two UpdatePanel controls. En el primer panel, la UpdateMode propiedad se establece en Conditional.In the first panel, the UpdateMode property is set to Conditional. En el segundo panel, UpdateMode se establece en Always.In the second panel, UpdateMode is set to Always. Un botón fuera RegisterAsyncPostBackControl ScriptManager de ambos paneles se registra como un control de postback asincrónico llamando al método del control.A button outside both panels is registered as an asynchronous postback control by calling the RegisterAsyncPostBackControl method of the ScriptManager control. En el controlador de Click eventos del botón, Update se llama al 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 solo se actualiza si la última actualización del panel fue de 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. El contenido del segundo Panel siempre se actualiza.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 UpdatePanel otro control, el panel se actualiza según lo establecido en la configuración UpdateMode de ChildrenAsTriggers las propiedades y, 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 UpdatePanel otro 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 la UpdateMode propiedad se establece en Always, el UpdatePanel contenido del control se actualiza en cada postback que se origina desde cualquier parte de 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 los postbacks asincrónicos de los controles UpdatePanel dentro de otros controles y los postbacks de los UpdatePanel controles que no están dentro de los 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 UpdatePanel otro control y se actualiza el panel de actualización primario.If the UpdatePanel control is nested inside another UpdatePanel control and the parent update panel is updated.

  • Si la UpdateMode propiedad se establece 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:

    • Llame explícitamente Update al método UpdatePanel del control.You call the Update method of the UpdatePanel control explicitly.

    • El PostBack se produce por un control definido como un desencadenador mediante Triggers la propiedad UpdatePanel del 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 desencadena explícitamente una actualización del contenido del panel.In this scenario, the control explicitly triggers an update of the panel content. El control puede estar 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.

    • La ChildrenAsTriggers propiedad se establece en true y UpdatePanel un control secundario del 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 UpdatePanel control anidado no produce una actualización en el control externo UpdatePanel a menos que se defina explícitamente como un 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: