Este tema aún no ha recibido ninguna valoración - Valorar este tema

UpdatePanel (Clase)

Habilita secciones de una página para que se presenten parcialmente sin postback.

System.Object
  System.Web.UI.Control
    System.Web.UI.UpdatePanel

Espacio de nombres:  System.Web.UI
Ensamblado:  System.Web.Extensions (en System.Web.Extensions.dll)
public class UpdatePanel : Control, 
	IAttributeAccessor
<asp:UpdatePanel />

El tipo UpdatePanel expone los siguientes miembros.

  Nombre Descripción
Método público UpdatePanel Inicializa una nueva instancia de la clase UpdatePanel.
Arriba
  Nombre Descripción
Propiedad protegida Adapter Obtiene el adaptador específico del explorador para el control. (Se hereda de Control).
Propiedad pública AppRelativeTemplateSourceDirectory Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control. (Se hereda de Control).
Propiedad pública Attributes Obtiene la colección de atributos de hoja de estilos en cascada (CSS) del control UpdatePanel.
Propiedad pública BindingContainer Infraestructura. Obtiene el control que contiene el enlace de datos de este control. (Se hereda de Control).
Propiedad protegida ChildControlsCreated Obtiene un valor que indica si se han creado controles secundarios del control de servidor. (Se hereda de Control).
Propiedad pública ChildrenAsTriggers Obtiene o establece un valor que indica si las devoluciones de datos de los controles secundarios inmediatos de un control UpdatePanel actualizan el contenido del panel.
Propiedad pública ClientID Obtiene el identificador de control del formato HTML generado por ASP.NET. (Se hereda de Control).
Propiedad pública ClientIDMode Obtiene o establece el algoritmo que se utiliza para generar el valor de la propiedad ClientID. (Se hereda de Control).
Propiedad protegida ClientIDSeparator Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID. (Se hereda de Control).
Propiedad pública ContentTemplate Obtiene o establece la plantilla que define el contenido del control UpdatePanel.
Propiedad pública ContentTemplateContainer Obtiene un objeto de control al que puede agregar controles secundarios mediante programación.
Propiedad protegida Context Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual. (Se hereda de Control).
Propiedad pública Controls Obtiene el objeto ControlCollection que contiene los controles secundarios del control UpdatePanel. (Invalida a Control.Controls).
Propiedad pública DataItemContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer. (Se hereda de Control).
Propiedad pública DataKeysContainer Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl. (Se hereda de Control).
Propiedad protegida DesignMode Obtiene un valor que indica si se está utilizando un control en una superficie de diseño. (Se hereda de Control).
Propiedad pública EnableTheming Obtiene o establece un valor que indica si los temas se aplican a este control. (Se hereda de Control).
Propiedad pública EnableViewState Obtiene o establece un valor que indica si el control de servidor debe mantener su estado de vista y el de los controles secundarios que contiene, en el cliente que realiza la solicitud. (Se hereda de Control).
Propiedad protegida Events Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura. (Se hereda de Control).
Propiedad protegida HasChildViewState Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista. (Se hereda de Control).
Propiedad pública ID Obtiene o establece el identificador de programación asignado al control de servidor. (Se hereda de Control).
Propiedad protegida IdSeparator Infraestructura. Obtiene el carácter utilizado para separar los identificadores de control. (Se hereda de Control).
Propiedad protegida IsChildControlStateCleared Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control. (Se hereda de Control).
Propiedad pública IsInPartialRendering Obtiene un valor que indica si se actualiza el control UpdatePanel como resultado de una devolución de datos asincrónica.
Propiedad protegida IsTrackingViewState Obtiene un valor que indica si el control de servidor está guardando los cambios realizados en su estado de vista. (Se hereda de Control).
Propiedad protegida IsViewStateEnabled Obtiene un valor que indica si el estado de vista está habilitado para este control. (Se hereda de Control).
Propiedad protegida LoadViewStateByID Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice. (Se hereda de Control).
Propiedad pública NamingContainer Obtiene una referencia al contenedor de nomenclatura del control de servidor, que crea un espacio de nombres único para diferenciar los distintos controles de servidor que tienen el mismo valor para la propiedad Control.ID. (Se hereda de Control).
Propiedad pública Page Obtiene una referencia a la instancia Page que contiene el control de servidor. (Se hereda de Control).
Propiedad pública Parent Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página. (Se hereda de Control).
Propiedad pública RenderingCompatibility Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados. (Se hereda de Control).
Propiedad pública RenderMode Obtiene o establece un valor que indica si el contenido de un control UpdatePanel se incluye en un <div> HTML o en un elemento de <span>.
Propiedad protegida RequiresUpdate Obtiene un valor que indica si se va a actualizar el contenido del control UpdatePanel.
Propiedad pública Site Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño. (Se hereda de Control).
Propiedad pública SkinID Obtiene o establece la máscara que se va a aplicar al control. (Se hereda de Control).
Propiedad pública TemplateControl Obtiene o establece una referencia a la plantilla que contiene este control. (Se hereda de Control).
Propiedad pública TemplateSourceDirectory Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual. (Se hereda de Control).
Propiedad pública Triggers Obtiene un objeto UpdatePanelTriggerCollection que contiene los objetos AsyncPostBackTrigger y PostBackTrigger que se registraron mediante declaración para el control UpdatePanel.
Propiedad pública UniqueID Obtiene el identificador único calificado jerárquicamente para el control de servidor. (Se hereda de Control).
Propiedad pública UpdateMode Obtiene o establece un valor que indica cuándo se actualiza un control de contenido UpdatePanel.
Propiedad protegida ViewState Obtiene un diccionario con información de estado que le permite guardar y restaurar el estado de vista de un control de servidor en las distintas solicitudes de la misma página. (Se hereda de Control).
Propiedad protegida ViewStateIgnoresCase Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas. (Se hereda de Control).
Propiedad pública ViewStateMode Obtiene o establece el modo del estado de vista de este control. (Se hereda de Control).
Propiedad pública Visible Obtiene o establece un valor que indica si un control de servidor se debe representar como interfaz de usuario en la página. (Se hereda de Control).
Arriba
  Nombre Descripción
Método protegido AddedControl Se le llama una vez que se ha agregado un control secundario a la colección Controls del Control objeto. (Se hereda de Control).
Método protegido AddParsedSubObject Indica al control de servidor que se ha analizado un elemento, ya sea XML o HTML, y agrega dicho elemento al objeto ControlCollection del control de servidor. (Se hereda de Control).
Método público ApplyStyleSheetSkin Aplica al control las propiedades de estilo definidas en la hoja de estilos de la página. (Se hereda de Control).
Método protegido BuildProfileTree Infraestructura. Recopila información sobre el control de servidor y la pasa a la propiedad Trace para que se muestre cuando está habilitada la traza de la página. (Se hereda de Control).
Método protegido ClearCachedClientID Infraestructura. Establece en null el valor de ClientID almacenado en caché. (Se hereda de Control).
Método protegido ClearChildControlState Elimina la información sobre el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildState Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearChildViewState Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor. (Se hereda de Control).
Método protegido ClearEffectiveClientIDMode Infraestructura. Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit. (Se hereda de Control).
Método protegido CreateChildControls Lo llama el marco de trabajo de las páginas ASP.NET para indicar a los controles de servidor que utilizan la implementación basada en la composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos. (Se hereda de Control).
Método protegido CreateContentTemplateContainer Crea un objeto Control que actúa como contenedor de los controles secundarios que definen el contenido del control UpdatePanel.
Método protegido CreateControlCollection Devuelve la colección de todos los controles contenidos en el control UpdatePanel. (Invalida a Control.CreateControlCollection()).
Método público DataBind() Enlaza un origen de datos al control de servidor invocado y a todos sus controles secundarios. (Se hereda de Control).
Método protegido DataBind(Boolean) Enlaza un origen de datos al control de servidor que se ha invocado y a todos sus controles secundarios con una opción para generar el evento DataBinding. (Se hereda de Control).
Método protegido DataBindChildren Enlaza un origen de datos a los controles secundarios del control de servidor. (Se hereda de Control).
Método público Dispose Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria. (Se hereda de Control).
Método protegido EnsureChildControls Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea. (Se hereda de Control).
Método protegido EnsureID Crea un identificador para controles que no tiene un identificador asignado. (Se hereda de Control).
Método público Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público FindControl(String) Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual. (Se hereda de Control).
Método protegido FindControl(String, Int32) Infraestructura. Busca el contenedor de nomenclatura actual para un control de servidor con el id especificado y un entero, que se especifica en el parámetro pathOffset, que ayuda a realizar la búsqueda. Esta versión del método FindControl no se debe reemplazar. (Se hereda de Control).
Método público Focus Establece el foco de entrada en un control. (Se hereda de Control).
Método protegido GetDesignModeState Infraestructura. Obtiene datos en tiempo de diseño para un control. (Se hereda de Control).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetRouteUrl(Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, Object) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetRouteUrl(String, RouteValueDictionary) Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta. (Se hereda de Control).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetUniqueIDRelativeTo Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado. (Se hereda de Control).
Método público HasControls Determina si el control de servidor contiene controles secundarios. (Se hereda de Control).
Método protegido HasEvents Devuelve un valor que indica si se registran eventos para el control o los controles secundarios. (Se hereda de Control).
Método protegido Initialize Inicializa la colección de desencadenadores del control UpdatePanel si se habilita la representación de página parcial.
Método protegido IsLiteralContent Infraestructura. Determina si el control de servidor alberga únicamente contenido literal. (Se hereda de Control).
Método protegido LoadControlState Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState. (Se hereda de Control).
Método protegido LoadViewState Restaura la información sobre el estado de vista de una solicitud de página anterior guardada por el método SaveViewState. (Se hereda de Control).
Método protegido MapPathSecure Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa. (Se hereda de Control).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido OnBubbleEvent Determina si el evento del control de servidor debe pasarse a la jerarquía de controles de servidor de la interfaz de usuario de la página. (Se hereda de Control).
Método protegido OnDataBinding Provoca el evento DataBinding. (Se hereda de Control).
Método protegido OnInit Provoca el evento Init. (Invalida a Control.OnInit(EventArgs)).
Método protegido OnLoad Genera el evento Load del control UpdatePanel e invoca el método Initialize cuando no se habilita la representación de página parcial. (Invalida a Control.OnLoad(EventArgs)).
Método protegido OnPreRender Provoca el evento PreRender. (Invalida a Control.OnPreRender(EventArgs)).
Método protegido OnUnload Genera el evento Unload base. (Invalida a Control.OnUnload(EventArgs)).
Método protegido OpenFile Obtiene un objeto Stream utilizado para leer un archivo. (Se hereda de Control).
Método protegido RaiseBubbleEvent Asigna los orígenes del evento y su información al control principal del control. (Se hereda de Control).
Método protegido RemovedControl Se le llama una vez que se ha quitado un control secundario de la colección Controls del Control objeto. (Se hereda de Control).
Método protegido Render Genera el evento Render. (Invalida a Control.Render(HtmlTextWriter)).
Método protegido RenderChildren Genera el evento RenderChildren. (Invalida a Control.RenderChildren(HtmlTextWriter)).
Método público RenderControl(HtmlTextWriter) Envía el contenido del control de servidor a un objeto HtmlTextWriter que se proporciona y almacena la información de traza sobre el control si dicha traza está habilitada. (Se hereda de Control).
Método protegido RenderControl(HtmlTextWriter, ControlAdapter) Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado. (Se hereda de Control).
Método protegido ResolveAdapter Obtiene el adaptador de controles que se encarga de representar el control especificado. (Se hereda de Control).
Método público ResolveClientUrl Obtiene una dirección URL que el explorador puede utilizar. (Se hereda de Control).
Método público ResolveUrl Convierte una dirección URL en una que el cliente solicitante pueda utilizar. (Se hereda de Control).
Método protegido SaveControlState Guarda los cambios de estado de un control de servidor que se hayan producido desde el momento en que se devolvieron al servidor los datos de la página. (Se hereda de Control).
Método protegido SaveViewState Guarda los cambios realizados en el estado de vista del control de servidor desde la devolución de la página al servidor. (Se hereda de Control).
Método protegido SetDesignModeState Establece datos en tiempo de diseño para un control. (Se hereda de Control).
Método público SetRenderMethodDelegate Infraestructura. Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal. (Se hereda de Control).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método protegido TrackViewState Origina el seguimiento de los cambios del estado de vista del control de servidor de manera que se puedan almacenar en el objeto StateBag del control de servidor. Se obtiene acceso a este objeto a través de la propiedad Control.ViewState. (Se hereda de Control).
Método público Update Genera una actualización del contenido de un control UpdatePanel.
Arriba
  Nombre Descripción
Evento público DataBinding Se produce cuando el control de servidor se enlaza a un origen de datos. (Se hereda de Control).
Evento público Disposed Se produce cuando un control de servidor se libera de la memoria, lo que constituye la última fase del período de duración de un control de servidor cuando se solicita una página ASP.NET. (Se hereda de Control).
Evento público Init Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida. (Se hereda de Control).
Evento público Load Se produce cuando el control de servidor se carga en el objeto Page. (Se hereda de Control).
Evento público PreRender Se produce una vez que se carga el objeto Control, pero antes de su representación. (Se hereda de Control).
Evento público Unload Se produce cuando el control de servidor se descarga de la memoria. (Se hereda de Control).
Arriba
  Nombre Descripción
Método de extensión público FindDataSourceControl Devuelve el origen de datos que está asociado al control de datos del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindFieldTemplate Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado. (Definido por DynamicDataExtensions).
Método de extensión público FindMetaTable Devuelve el objeto de metatabla para el control de datos contenedor. (Definido por DynamicDataExtensions).
Arriba
  Nombre Descripción
Implementación explícita de interfaces Método privado IAttributeAccessor.GetAttribute Devuelve un atributo de un control web utilizando el nombre especificado.
Implementación explícita de interfaces Método privado IAttributeAccessor.SetAttribute Establece el valor del atributo del control especificado.
Implementación explícita de interfaces Propiedad privada IControlBuilderAccessor.ControlBuilder Para obtener una descripción de este miembro, vea IControlBuilderAccessor.ControlBuilder. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.GetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.GetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetDesignModeState Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetDesignModeState. (Se hereda de Control).
Implementación explícita de interfaces Método privado IControlDesignerAccessor.SetOwnerControl Infraestructura. Para obtener una descripción de este miembro, vea IControlDesignerAccessor.SetOwnerControl. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IControlDesignerAccessor.UserData Para obtener una descripción de este miembro, vea IControlDesignerAccessor.UserData. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.DataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.DataBindings. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IDataBindingsAccessor.HasDataBindings Para obtener una descripción de este miembro, vea IDataBindingsAccessor.HasDataBindings. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.Expressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.Expressions. (Se hereda de Control).
Implementación explícita de interfaces Propiedad privada IExpressionsAccessor.HasExpressions Para obtener una descripción de este miembro, vea IExpressionsAccessor.HasExpressions. (Se hereda de Control).
Implementación explícita de interfaces Método privado IParserAccessor.AddParsedSubObject Para obtener una descripción de este miembro, vea IParserAccessor.AddParsedSubObject. (Se hereda de Control).
Arriba

En este tema:

Introduction

Los controles UpdatePanel son una parte fundamental de la funcionalidad AJAX en ASP.NET. Se usan con el control ScriptManager para habilitar la representación de una página parcial. Esta representación reduce la necesidad de devoluciones de datos sincrónicas y actualizaciones de página completas cuando sólo se debe actualizar parte de la página. La representación de página parcial mejora la experiencia del usuario porque reduce el parpadeo de la pantalla que se produce durante una devolución de datos de página completa y mejora la interactividad de páginas web.

Actualizar el contenido de UpdatePanel

Cuando se habilita la representación parcial de la página, un control puede realizar una devolución de datos que actualiza la página entera o una devolución de datos asincrónica que actualiza el contenido de uno o más controles UpdatePanel. Si un control genera una devolución de datos asincrónica y actualiza un control UpdatePanel depende de lo siguiente:

  • Si la propiedad UpdateMode del control UpdatePanel se establece en Always, el contenido del control UpdatePanel se actualiza en cada devolución de datos que se origine en la página. Se incluyen las devoluciones de datos asincrónicas de controles que están dentro de otros controles UpdatePanel y devoluciones de datos de controles que no están dentro de los controles UpdatePanel.

  • Si la propiedad UpdateMode se establece en Conditional, el contenido del control UpdatePanel se actualiza en los siguientes casos:

    • Al llamar explícitamente al método Update del control UpdatePanel.

    • Cuando se anida el control UpdatePanel dentro de otro control UpdatePanel y se actualiza el panel primario.

    • Cuando un control que se define como desencadenador utilizando la propiedad Triggers del control UpdatePanel genera una devolución de datos. En este escenario, el control activa explícitamente una actualización del contenido del panel. El control puede ser interior o exterior respecto al control UpdatePanel al que se asocia el desencadenador.

    • Cuando la propiedad ChildrenAsTriggers se establece en true y un control secundario del control UpdatePanel provoca una devolución de datos. Los controles secundarios de los controles UpdatePanel anidados no provocan actualizaciones del control UpdatePanel externo a menos que se definan explícitamente como desencadenadores.

No se permite la combinación de establecer la propiedad ChildrenAsTriggers en false y la propiedad UpdateMode en Always y produce una excepción.

Cuando el control UpdatePanel realiza un envío asincrónico, agrega un encabezado HTTP personalizado. Algunos proxies quitan este encabezado HTTP personalizado. Si es así, el servidor controla la solicitud como una devolución de datos normal, lo que genera un error en el cliente. Para resolver este problema, inserte un campo de formulario personalizado cuando realice envíos asincrónicos. A continuación, compruebe el encabezado o el campo de formulario personalizado en el código de servidor.

Uso de UpdatePanel

Puede utilizar varios controles UpdatePanel para actualizar las diferentes regiones de una página independientemente. Cuando primero se representa la página que contiene uno o más controles UpdatePanel, se representa y se envía todo el contenido de todos los controles UpdatePanel al explorador. En las devoluciones de datos asincrónica subsiguientes, el contenido de cada control UpdatePanel quizá no se pueda actualizar dependiendo de la configuración del panel y de la lógica de cliente o de servidor de los paneles individuales.

También puede utilizar los controles UpdatePanel en los escenarios siguientes:

  • En controles de usuario.

  • En las páginas maestras y de contenido.

  • Anidados en otros controles UpdatePanel.

  • Dentro de controles con plantilla como los controles GridView o Repeater.

Se pueden agregar los controles UpdatePanel mediante declaración o programación.

Puede agregar un control UpdatePanel mediante programación, pero no puede agregar desencadenadores de esta forma. Para crear comportamiento como desencadenador, puede registrar un control en la página como control de devolución de datos asincrónica. Para hacer esto llame al método RegisterAsyncPostBackControl del control ScriptManager. Después puede crear un controlador de eventos que se ejecute como respuesta a la devolución de datos asincrónica y, en el controlador, llame al método Update del control UpdatePanel.

Aplicar estilos

El control UpdatePanel acepta atributos expando. Esto le permite establecer una clase CSS para los elementosHTML que los controles representan. Por ejemplo, podría crear el marcado que se muestra en el ejemplo siguiente:

<asp:UpdatePanel runat="server" class="myStyle">
</asp:UpdatePanel> 

El marcado en el ejemplo anterior representa HTML similar al siguiente cuando la página se ejecuta:

<div id="ctl00_MainContent_UpdatePanel1" class="MyStyle">
</div>

Sintaxis de la declaración

<asp:UpdatePanel
    ChildrenAsTriggers="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    RenderMode="Block|Inline"
    runat="server"
    SkinID="string"
    UpdateMode="Always|Conditional"
    Visible="True|False"
>
    <ContentTemplate>
        <!-- child controls -->
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger 
            ControlID="string"
            EventName="string"
        />
        <asp:PostBackTrigger 
            ControlID="string"
        />
    </Triggers>
</asp:UpdatePanel>

En los ejemplos siguientes, se muestran distintos usos del control UpdatePanel.

Controles dentro de un control UpdatePanel

En el ejemplo siguiente, se muestra la colocación de los controles dentro de un control UpdatePanel para reducir el parpadeo de la pantalla al exponer en el servidor. En este ejemplo, los controles Calendar y DropDownList están dentro de un control UpdatePanel. De forma predeterminada, el valor de la propiedad UpdateMode es Always y el de la propiedad ChildrenAsTriggers es true. Por consiguiente, los controles secundarios del panel provocan una devolución de datos asincrónica.



<%@ 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">
    void DropDownSelection_Change(Object sender, EventArgs e)
    {
        Calendar1.DayStyle.BackColor =
            System.Drawing.Color.FromName(ColorList.SelectedItem.Value);
    }

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {
        SelectedDate.Text = 
            Calendar1.SelectedDate.ToString();
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar1" 
                                  ShowTitle="True"
                                  OnSelectionChanged="Calendar1_SelectionChanged"
                                  runat="server" />
                    <div>
                        Background:
                        <br />
                        <asp:DropDownList ID="ColorList" 
                                          AutoPostBack="True" 
                                          OnSelectedIndexChanged="DropDownSelection_Change"
                                          runat="server">
                            <asp:ListItem Selected="True" Value="White"> 
                            White </asp:ListItem>
                            <asp:ListItem Value="Silver"> 
                            Silver </asp:ListItem>
                            <asp:ListItem Value="DarkGray"> 
                            Dark Gray </asp:ListItem>
                            <asp:ListItem Value="Khaki"> 
                            Khaki </asp:ListItem>
                            <asp:ListItem Value="DarkKhaki"> D
                            ark Khaki </asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <br />
                    Selected date:
                    <asp:Label ID="SelectedDate" 
                               runat="server">None.</asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <br />
        </div>
    </form>
</body>
</html>


Escenario de maestro/detalle con controles UpdatePanel

En el ejemplo siguiente, se usa un control UpdatePanel en un escenario de maestro/detalle que muestra los pedidos y los detalles de los pedidos de la base de datos Northwind. Un control UpdatePanel contiene el control GridView que muestra una lista de pedidos. Un segundo control UpdatePanel contiene un control DetailsView que muestra los detalles de un pedido. Al seleccionar un pedido de la primera tabla, los detalles para ese pedido se muestran en la segunda tabla. Esta tabla se actualiza de forma asincrónica basándose en la selección en la primera. Las operaciones de paginación y ordenación de la tabla de resumen de pedidos también provocan actualizaciones parciales.


<%@ 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 void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlDataSource2.SelectParameters["OrderID"].DefaultValue = 
            GridView1.SelectedDataKey.Value.ToString();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1"
                               runat="server" />
            <asp:UpdatePanel ID="OrdersPanel"
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <asp:GridView ID="GridView1" 
                                  AllowPaging="True"
                                  AllowSorting="True"
                                  Caption="Orders"
                                  DataKeyNames="OrderID"
                                  DataSourceID="SqlDataSource1"
                                  OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                                  runat="server" >
                    <Columns>
                    <asp:CommandField ShowSelectButton="True"></asp:CommandField>
                    </Columns>
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource1"
                                       runat="server"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [CustomerID], [EmployeeID], [OrderDate] FROM [Orders]">
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdatePanel ID="OrderDetailsPanel"
                             UpdateMode="Always"
                             runat="server">
                <ContentTemplate>
                    <asp:DetailsView ID="DetailsView1"
                                     Caption="Order Details"
                                     DataKeyNames="OrderID,ProductID"
                                     DataSourceID="SqlDataSource2"
                                     runat="server">
                        <EmptyDataTemplate>
                        <i>Select a row from the Orders table.</i>
                        </EmptyDataTemplate>
                    </asp:DetailsView>
                    <asp:SqlDataSource ID="SqlDataSource2"
                                       ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                                       SelectCommand="SELECT [OrderID], [ProductID], [UnitPrice], [Quantity], [Discount] FROM [Order Details] WHERE ([OrderID] = @OrderID)"
                                       runat="server">
                        <SelectParameters>
                            <asp:Parameter Name="OrderID"
                                           Type="Int32" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>


Si coloca un control GridView dentro de un control UpdatePanel, no se admite el establecimiento del valor de la propiedad EnableSortingAndPagingCallbacks del control GridView en true. Sin embargo, puesto que el control UpdatePanel admite las devoluciones de datos asincrónicas, cualquier devolución de datos que cambie el control GridView dentro de un control UpdatePanel provocan el mismo comportamiento que las devoluciones de llamadas de ordenación y paginación.

Usar un control UpdatePanel en una plantilla

En el ejemplo siguiente se usa un control UpdatePanel en la plantilla de elemento de un control GridView. Automáticamente se generan los controles UpdatePanel en cada fila de datos. El control UpdatePanel de cada fila contiene un control Label con el fin de mostrar la parte del elemento de esa fila y un control Button para reducir y aumentar esa parte.



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

    private void ChangeQuantity(object sender, int delta)
    {
        Label quantityLabel = (Label)((Button)sender).FindControl("QuantityLabel");
        int currentQuantity = Int32.Parse(quantityLabel.Text);
        currentQuantity = Math.Max(0, currentQuantity + delta);
        quantityLabel.Text = currentQuantity.ToString(System.Globalization.CultureInfo.InvariantCulture);
    }

    private void OnDecreaseQuantity(object sender, EventArgs e)
    {
        ChangeQuantity(sender, -1);
    }

    private void OnIncreaseQuantity(object sender, EventArgs e)
    {
        ChangeQuantity(sender, 1);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Beverage order:<br/>");
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                Label quantityLabel = (Label)row.FindControl("QuantityLabel");
                int currentQuantity = Int32.Parse(quantityLabel.Text);
                sb.Append(row.Cells[0].Text + " : " + currentQuantity + "<br/>");
            }
        }
        SummaryLabel.Text = sb.ToString();

    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>UpdatePanel Inside GridView Template Example </title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:GridView ID="GridView1" 
                          AutoGenerateColumns="False"
                          DataSourceID="SqlDataSource1"
                          runat="server">
                <Columns>
                    <asp:BoundField DataField="ProductName" 
                                    HeaderText="ProductName" />
                    <asp:BoundField DataField="UnitPrice"
                                    HeaderText="UnitPrice" />
                    <asp:TemplateField HeaderText="Quantity">
                        <ItemTemplate>
                            <asp:UpdatePanel ID="QuantityUpdatePanel"
                                             UpdateMode="Conditional"
                                             runat="server" >
                                <ContentTemplate>
                                    <asp:Label ID="QuantityLabel"
                                               Text="0"
                                               runat="server" />
                                    <asp:Button ID="DecreaseQuantity"
                                                Text="-"
                                                OnClick="OnDecreaseQuantity"
                                                runat="server" />
                                    <asp:Button ID="IncreaseQuantity" 
                                                Text="+"
                                                OnClick="OnIncreaseQuantity"
                                                runat="server" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>            
            <asp:UpdatePanel ID="SummaryUpdatePanel" 
                             UpdateMode="Conditional"
                             runat="server">
                <ContentTemplate>
                    <asp:Button ID="Button1"
                                OnClick="Button1_Click"
                                Text="Get Summary"
                                runat="server" />
                    <br />
                    <asp:Label ID="SummaryLabel"
                               runat="server">
                    </asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:SqlDataSource ID="SqlDataSource1"
                               ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
                               SelectCommand="SELECT [ProductName], [UnitPrice] FROM 
                               [Alphabetical list of products] WHERE ([CategoryName] 
                               LIKE '%' + @CategoryName + '%')"
                               runat="server">
                <SelectParameters>
                    <asp:Parameter DefaultValue="Beverages"
                                   Name="CategoryName"
                                   Type="String" />
                </SelectParameters>
            </asp:SqlDataSource>
        </div>
    </form>
</body>
</html>


.NET Framework

Compatible con: 4, 3.5

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar