Compartir vía


UpdatePanel Clase

Definición

Permite que secciones de una página se representen parcialmente sin un postback.

public ref class UpdatePanel : System::Web::UI::Control
public ref class UpdatePanel : System::Web::UI::Control, System::Web::UI::IAttributeAccessor
[System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")]
public class UpdatePanel : System.Web.UI.Control
[System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")]
public class UpdatePanel : System.Web.UI.Control, System.Web.UI.IAttributeAccessor
[<System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")>]
type UpdatePanel = class
    inherit Control
[<System.Drawing.ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.UpdatePanel.bmp")>]
type UpdatePanel = class
    inherit Control
    interface IAttributeAccessor
Public Class UpdatePanel
Inherits Control
Public Class UpdatePanel
Inherits Control
Implements IAttributeAccessor
Herencia
UpdatePanel
Atributos
Implementaciones

Ejemplos

En los ejemplos siguientes se muestran varios usos del UpdatePanel control .

Controles dentro de un control UpdatePanel

En el ejemplo siguiente se muestra cómo colocar controles dentro de un UpdatePanel control para reducir el parpadeo de pantalla al publicar en el servidor. En este ejemplo, un Calendar control y DropDownList están dentro de un UpdatePanel control . De forma predeterminada, la UpdateMode propiedad es Always y la ChildrenAsTriggers propiedad es true. Por lo tanto, los controles secundarios del panel provocan un postback asincrónico.


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

<%@ 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">
    Sub DropDownSelection_Change(ByVal Sender As Object, ByVal E As EventArgs)
        Calendar1.DayStyle.BackColor = _
        System.Drawing.Color.FromName(ColorList.SelectedItem.Value)
    End Sub

    Protected Sub Calendar1_SelectionChanged(ByVal Sender As Object, ByVal E As EventArgs)
        SelectedDate.Text = Calendar1.SelectedDate.ToString()
    End Sub

</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 maestro/detalle con controles UpdatePanel

En el ejemplo siguiente, se usa un UpdatePanel control en un escenario de maestro y detalle que muestra los pedidos y los detalles del pedido de la base de datos Northwind. Un UpdatePanel control contiene el GridView control que muestra una lista de pedidos. Un segundo UpdatePanel control contiene un DetailsView control que muestra los detalles de un pedido. Al seleccionar un pedido de la primera tabla, los detalles de ese pedido se muestran en la segunda tabla. La segunda tabla se actualiza de forma asincrónica en función de la selección de la primera tabla. Las operaciones de ordenación y paginació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>
<%@ 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 Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        SqlDataSource2.SelectParameters("OrderID").DefaultValue = _
        GridView1.SelectedDataKey.Value.ToString()
    End Sub

</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 GridView control dentro de un UpdatePanel control, no se admite establecer la GridView propiedad true del EnableSortingAndPagingCallbacks control en . Sin embargo, dado que el UpdatePanel control admite postbacks asincrónicos, los postbacks que cambian el GridView control dentro de un UpdatePanel control provocan el mismo comportamiento que las devoluciones de llamada de ordenación y paginación.

Usar un control UpdatePanel en una plantilla

En el ejemplo siguiente, se usa un UpdatePanel control en la plantilla de elemento de un GridView control . UpdatePanel los controles de cada fila de datos se generan automáticamente. El control de UpdatePanel cada fila contiene un Label control para mostrar la cantidad del elemento en esa fila y un Button control para disminuir y aumentar la cantidad.


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

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

    Private Sub ChangeQuantity(ByVal Sender As Button, ByVal delta As Integer)
        Dim quantityLabel As Label = CType(Sender.FindControl("QuantityLabel"), Label)
        Dim currentQuantity As Integer = Int32.Parse(quantityLabel.Text)
        currentQuantity = Math.Max(0, currentQuantity + delta)
        quantityLabel.Text = currentQuantity.ToString(System.Globalization.CultureInfo.InvariantCulture)
    End Sub

    Private Sub OnDecreaseQuantity(ByVal Sender As Object, ByVal E As EventArgs)
        ChangeQuantity(Sender, -1)
    End Sub

    Private Sub OnIncreaseQuantity(ByVal Sender As Object, ByVal E As EventArgs)
        ChangeQuantity(Sender, 1)
    End Sub

    Protected Sub Button1_Click(ByVal Sender As Object, ByVal E As EventArgs)
    
        Dim sb As New StringBuilder()
        sb.Append("Beverage order:<br/>")
        For Each row As GridViewRow In GridView1.Rows
        
            If row.RowType = DataControlRowType.DataRow Then
                Dim quantityLabel As Label = CType(row.FindControl("QuantityLabel"), Label)
                Dim currentQuantity As Int32 = Int32.Parse(quantityLabel.Text)
                sb.Append(row.Cells(0).Text + " : " & currentQuantity & "<br/>")
            End If
        Next
        SummaryLabel.Text = sb.ToString()

    End Sub
</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"
                                             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" 
                             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>

Comentarios

En este tema:

Introducción

UpdatePanel los controles son una parte central de la funcionalidad de AJAX en ASP.NET. Se usan con el control para habilitar la ScriptManager representación parcial de páginas. La representación parcial de página reduce la necesidad de postbacks sincrónicos y actualizaciones de página completas cuando solo se tiene que actualizar parte de la página. La representación parcial de página mejora la experiencia del usuario porque reduce el parpadeo de pantalla que se produce durante una postback de página completa y mejora la interactividad de página web.

Actualizar el contenido de UpdatePanel

Cuando se habilita la representación parcial de páginas, un control puede realizar una devolución de entrada que actualiza toda la página o una postback asincrónica que actualiza el contenido de uno o varios UpdatePanel controles. Si un control provoca una postback asincrónica y actualiza un UpdatePanel control depende de lo siguiente:

  • Si la UpdateMode propiedad del UpdatePanel control se establece Alwaysen , el UpdatePanel contenido del control se actualiza en cada postback que se origina en la página. Esto incluye postbacks asincrónicos de controles que están dentro de otros UpdatePanel controles y postbacks de los controles que no están dentro UpdatePanel de los controles.

  • Si la UpdateMode propiedad se establece Conditionalen , el UpdatePanel contenido del control se actualiza en las siguientes circunstancias:

    • Cuando se llama al Update método del UpdatePanel control explícitamente.

    • Cuando el UpdatePanel control está anidado dentro de otro UpdatePanel control y se actualiza el panel primario.

    • Cuando un postback se debe a un control definido como desencadenador mediante la Triggers propiedad del UpdatePanel control . En este escenario, el control desencadena explícitamente una actualización del contenido del panel. El control puede estar dentro o fuera del UpdatePanel control al que está asociado el desencadenador.

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

La combinación de establecer la ChildrenAsTriggers propiedad false en y la UpdateMode propiedad Always en no está permitida y producirá una excepción.

Cuando el UpdatePanel control realiza una publicación asincrónica, agrega un encabezado HTTP personalizado. Algunos servidores proxy quitan este encabezado HTTP personalizado. Si esto ocurre, el servidor controla la solicitud como postback normal, lo que provoca un error de cliente. Para resolver este problema, inserte un campo de formulario personalizado al realizar publicaciones asincrónicas. A continuación, compruebe el encabezado o el campo de formulario personalizado en el código del servidor.

Uso de UpdatePanel

Puede usar varios UpdatePanel controles para actualizar varias regiones de página de forma independiente. Cuando la página que contiene uno o varios UpdatePanel controles se representa por primera vez, todo el contenido de todos los UpdatePanel controles se representa y se envía al explorador. En posteriores postbacks asincrónicos, es posible que el contenido de cada UpdatePanel control no se actualice en función de la configuración del panel y de la lógica de cliente o servidor para paneles individuales.

También puede usar UpdatePanel controles para lo siguiente:

  • En los controles de usuario.

  • En páginas maestras y de contenido.

  • Anidado dentro de otros UpdatePanel controles.

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

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

Puede agregar un UpdatePanel control mediante programación, pero no puede agregar desencadenadores mediante programación. Para crear un comportamiento similar al desencadenador, puede registrar un control en la página como un control de postback asincrónico. Para ello, llame al RegisterAsyncPostBackControl método del ScriptManager control . A continuación, puede crear un controlador de eventos que se ejecute en respuesta al postback asincrónico y, en el controlador, llamar al Update método del UpdatePanel control .

Aplicar estilos

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

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

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

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

Sintaxis declarativa

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

Constructores

UpdatePanel()

Inicializa una nueva instancia de la clase UpdatePanel.

Propiedades

Adapter

Obtiene el adaptador específico del explorador para el control.

(Heredado de Control)
AppRelativeTemplateSourceDirectory

Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control.

(Heredado de Control)
Attributes

Obtiene la colección de atributos de hoja de estilos en cascada (CSS) del control UpdatePanel.

BindingContainer

Obtiene el control que contiene el enlace de datos de este control.

(Heredado de Control)
ChildControlsCreated

Obtiene un valor que indica si se han creado controles secundarios del control de servidor.

(Heredado de Control)
ChildrenAsTriggers

Obtiene o establece un valor que indica si los postbacks de los controles secundarios inmediatos de un control UpdatePanel actualizan el contenido del panel.

ClientID

Obtiene el id. de control para marcado HTML que se genera por ASP.NET.

(Heredado de Control)
ClientIDMode

Obtiene o establece el algoritmo que se utiliza para generar el valor de la propiedad ClientID.

(Heredado de Control)
ClientIDSeparator

Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID.

(Heredado de Control)
ContentTemplate

Obtiene o establece la plantilla que define el contenido del control UpdatePanel.

ContentTemplateContainer

Obtiene un objeto de control al que puede agregar controles secundarios mediante programación.

Context

Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual.

(Heredado de Control)
Controls

Obtiene el objeto ControlCollection que contiene los controles secundarios del control UpdatePanel.

DataItemContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer.

(Heredado de Control)
DataKeysContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl.

(Heredado de Control)
DesignMode

Obtiene un valor que indica si se está utilizando un control en una superficie de diseño.

(Heredado de Control)
EnableTheming

Obtiene o establece un valor que indica si los temas se aplican a este control.

(Heredado de Control)
EnableViewState

Obtiene o establece un valor que indica si el control de servidor conserva su estado de vista, así como el estado de vista de los controles secundarios que contiene, al cliente solicitante.

(Heredado de Control)
Events

Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura.

(Heredado de Control)
HasChildViewState

Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista.

(Heredado de Control)
ID

Obtiene o establece el identificador de programación asignado al control de servidor.

(Heredado de Control)
IdSeparator

Obtiene el carácter utilizado para separar los identificadores de control.

(Heredado de Control)
IsChildControlStateCleared

Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control.

(Heredado de Control)
IsInPartialRendering

Obtiene un valor que indica si se actualiza el control UpdatePanel a consecuencia de un postback asincrónico.

IsTrackingViewState

Obtiene un valor que indica si el control de servidor está guardando los cambios realizados en su estado de vista.

(Heredado de Control)
IsViewStateEnabled

Obtiene un valor que indica si el estado de vista está habilitado para este control.

(Heredado de Control)
LoadViewStateByID

Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice.

(Heredado de Control)
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 ID.

(Heredado de Control)
Page

Obtiene una referencia a la instancia Page que contiene el control de servidor.

(Heredado de Control)
Parent

Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página.

(Heredado de Control)
RenderingCompatibility

Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados.

(Heredado de Control)
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>.

RequiresUpdate

Obtiene un valor que indica si se va a actualizar el contenido del control UpdatePanel.

Site

Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño.

(Heredado de Control)
SkinID

Obtiene o establece la máscara que se aplica al control.

(Heredado de Control)
TemplateControl

Obtiene o establece una referencia a la plantilla que contiene este control.

(Heredado de Control)
TemplateSourceDirectory

Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual.

(Heredado de Control)
Triggers

Obtiene un objeto UpdatePanelTriggerCollection que contiene los objetos AsyncPostBackTrigger y PostBackTrigger que se registraron mediante declaración para el control UpdatePanel.

UniqueID

Obtiene el identificador único calificado jerárquicamente para el control de servidor.

(Heredado de Control)
UpdateMode

Obtiene o establece un valor que indica cuándo se actualiza un control de contenido UpdatePanel.

ValidateRequestMode

Obtiene o establece un valor que indica si el control comprueba la entrada del cliente desde el explorador para valores potencialmente peligrosos.

(Heredado de Control)
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.

(Heredado de Control)
ViewStateIgnoresCase

Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas.

(Heredado de Control)
ViewStateMode

Obtiene o establece el modo del estado de vista de este control.

(Heredado de Control)
Visible

Obtiene o establece un valor que indica si un control de servidor se representa como interfaz de usuario en la página.

(Heredado de Control)

Métodos

AddedControl(Control, Int32)

Se llama después de agregar un control secundario a la colección Controls del objeto Control.

(Heredado de Control)
AddParsedSubObject(Object)

Notifica al control de servidor que se analizó un elemento, ya sea XML o HTML, y agrega el elemento al objeto ControlCollection del control del servidor.

(Heredado de Control)
ApplyStyleSheetSkin(Page)

Aplica al control las propiedades de estilo definidas en la hoja de estilos de la página.

(Heredado de Control)
BeginRenderTracing(TextWriter, Object)

Comienza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
BuildProfileTree(String, Boolean)

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.

(Heredado de Control)
ClearCachedClientID()

Establece en null el valor de ClientID almacenado en caché.

(Heredado de Control)
ClearChildControlState()

Elimina la información sobre el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildState()

Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildViewState()

Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor.

(Heredado de Control)
ClearEffectiveClientIDMode()

Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit.

(Heredado de Control)
CreateChildControls()

Lo llama el marco de páginas ASP.NET para indicar a los controles de servidor que usan la implementación basada en composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos.

(Heredado de Control)
CreateContentTemplateContainer()

Crea un objeto Control que actúa como contenedor de los controles secundarios que definen el contenido del control UpdatePanel.

CreateControlCollection()

Devuelve la colección de todos los controles contenidos en el control UpdatePanel.

DataBind()

Enlaza un origen de datos al control de servidor invocado y a todos sus controles secundarios.

(Heredado de Control)
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.

(Heredado de Control)
DataBindChildren()

Enlaza un origen de datos a los controles secundarios del control de servidor.

(Heredado de Control)
Dispose()

Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria.

(Heredado de Control)
EndRenderTracing(TextWriter, Object)

Finaliza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
EnsureChildControls()

Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea.

(Heredado de Control)
EnsureID()

Crea un identificador para controles que no tiene un identificador asignado.

(Heredado de Control)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FindControl(String)

Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual.

(Heredado de Control)
FindControl(String, Int32)

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.

(Heredado de Control)
Focus()

Establece el foco de entrada en un control.

(Heredado de Control)
GetDesignModeState()

Obtiene datos en tiempo de diseño para un control.

(Heredado de Control)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetRouteUrl(Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(String, Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetUniqueIDRelativeTo(Control)

Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado.

(Heredado de Control)
HasControls()

Determina si el control de servidor contiene controles secundarios.

(Heredado de Control)
HasEvents()

Devuelve un valor que indica si se registran eventos para el control o los controles secundarios.

(Heredado de Control)
Initialize()

Inicializa la colección de desencadenadores del control UpdatePanel si se habilita la representación de página parcial.

IsLiteralContent()

Determina si el control de servidor alberga únicamente contenido literal.

(Heredado de Control)
LoadControlState(Object)

Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState().

(Heredado de Control)
LoadViewState(Object)

Restaura la información de estado de vista de una solicitud de página anterior guardada por el método SaveViewState().

(Heredado de Control)
MapPathSecure(String)

Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa.

(Heredado de Control)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnBubbleEvent(Object, EventArgs)

Determina si el evento del control de servidor se pasa a la jerarquía de control de servidor de la interfaz de usuario (UI) de la página.

(Heredado de Control)
OnDataBinding(EventArgs)

Genera el evento DataBinding.

(Heredado de Control)
OnInit(EventArgs)

Genera el evento Init.

OnLoad(EventArgs)

Genera el evento Load del control UpdatePanel e invoca el método Initialize() cuando no se habilita la representación de página parcial.

OnPreRender(EventArgs)

Genera el evento PreRender.

OnUnload(EventArgs)

Genera el evento Unload base.

OpenFile(String)

Obtiene un objeto Stream utilizado para leer un archivo.

(Heredado de Control)
RaiseBubbleEvent(Object, EventArgs)

Asigna los orígenes del evento y su información al control principal del control.

(Heredado de Control)
RemovedControl(Control)

Se llama después de quitar un control secundario de la colección Controls del objeto Control.

(Heredado de Control)
Render(HtmlTextWriter)

Genera el evento Render(HtmlTextWriter).

RenderChildren(HtmlTextWriter)

Genera el evento RenderChildren(HtmlTextWriter).

RenderControl(HtmlTextWriter)

Envía el contenido de control del servidor a un objeto HtmlTextWriter proporcionado y almacena información de seguimiento sobre el control si está habilitado el seguimiento.

(Heredado de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado.

(Heredado de Control)
ResolveAdapter()

Obtiene el adaptador de controles que se encarga de representar el control especificado.

(Heredado de Control)
ResolveClientUrl(String)

Obtiene una dirección URL que el explorador puede utilizar.

(Heredado de Control)
ResolveUrl(String)

Convierte una dirección URL en una que el cliente solicitante pueda utilizar.

(Heredado de Control)
SaveControlState()

Guarda los cambios de estado del control de servidor que se produjeron desde la hora en que la página volvió a publicarse en el servidor.

(Heredado de Control)
SaveViewState()

Guarda los cambios realizados en el estado de vista del control de servidor desde que la página volvió a publicarse en el servidor.

(Heredado de Control)
SetDesignModeState(IDictionary)

Establece los datos en tiempo de diseño para un control.

(Heredado de Control)
SetRenderMethodDelegate(RenderMethod)

Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal.

(Heredado de Control)
SetTraceData(Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa la clave y el valor de los datos de seguimiento.

(Heredado de Control)
SetTraceData(Object, Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa el objeto del que se ha realizado seguimiento, así como la clave y el valor de los datos de seguimiento.

(Heredado de Control)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
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. Este objeto es accesible a través de la propiedad ViewState.

(Heredado de Control)
Update()

Genera una actualización del contenido de un control UpdatePanel.

Eventos

DataBinding

Se produce cuando el control de servidor se enlaza a un origen de datos.

(Heredado de Control)
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.

(Heredado de Control)
Init

Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida.

(Heredado de Control)
Load

Se produce cuando el control de servidor se carga en el objeto Page.

(Heredado de Control)
PreRender

Se produce una vez que se carga el objeto Control, pero antes de su representación.

(Heredado de Control)
Unload

Se produce cuando el control de servidor se descarga de la memoria.

(Heredado de Control)

Implementaciones de interfaz explícitas

IAttributeAccessor.GetAttribute(String)

Devuelve un atributo de un control web utilizando el nombre especificado.

IAttributeAccessor.SetAttribute(String, String)

Establece el valor del atributo del control especificado.

IControlBuilderAccessor.ControlBuilder

Para obtener una descripción de este miembro, vea ControlBuilder.

(Heredado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para obtener una descripción de este miembro, vea GetDesignModeState().

(Heredado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para obtener una descripción de este miembro, vea SetDesignModeState(IDictionary).

(Heredado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para obtener una descripción de este miembro, vea SetOwnerControl(Control).

(Heredado de Control)
IControlDesignerAccessor.UserData

Para obtener una descripción de este miembro, vea UserData.

(Heredado de Control)
IDataBindingsAccessor.DataBindings

Para obtener una descripción de este miembro, vea DataBindings.

(Heredado de Control)
IDataBindingsAccessor.HasDataBindings

Para obtener una descripción de este miembro, vea HasDataBindings.

(Heredado de Control)
IExpressionsAccessor.Expressions

Para obtener una descripción de este miembro, vea Expressions.

(Heredado de Control)
IExpressionsAccessor.HasExpressions

Para obtener una descripción de este miembro, vea HasExpressions.

(Heredado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para obtener una descripción de este miembro, vea AddParsedSubObject(Object).

(Heredado de Control)

Métodos de extensión

FindDataSourceControl(Control)

Devuelve el origen de datos que está asociado al control de datos del control especificado.

FindFieldTemplate(Control, String)

Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado.

FindMetaTable(Control)

Devuelve el objeto de metatabla para el control de datos contenedor.

Se aplica a

Consulte también