UpdatePanel Classe

Definição

Permite que secções de uma página sejam parcialmente renderizadas sem necessidade de devolução de publicação.

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
Herança
UpdatePanel
Atributos
Implementações

Exemplos

Os exemplos seguintes mostram várias utilizações do UpdatePanel controlo.

Controlos Dentro de um Controlo do Painel de Atualização

O exemplo seguinte mostra como colocar controlos dentro de um UpdatePanel controlo para reduzir o flicker do ecrã quando publicas no servidor. Neste exemplo, a Calendar e um DropDownList controlo estão dentro de um UpdatePanel controlo. Por defeito, a UpdateMode propriedade é Always e a ChildrenAsTriggers propriedade é true. Portanto, os controlos filhos do painel causam um postback assíncrono.


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

Cenário Mestre/Detalhe com Controlos do Painel de Atualização

No exemplo seguinte, um UpdatePanel controlo é usado num cenário mestre/detalhe que mostra ordens e detalhes de ordens da base de dados Northwind. Um UpdatePanel dos controlos contém o GridView controlo que apresenta uma lista de ordens. Um segundo UpdatePanel controlo contém um DetailsView controlo que apresenta os detalhes de uma ordem. Quando seleciona uma encomenda da primeira tabela, os detalhes dessa ordem são apresentados na segunda tabela. A segunda tabela é atualizada assíncrona com base na seleção da primeira tabela. As operações de ordenação e paginação na tabela de resumo de ordens também causam atualizações parciais.

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

Se colocar um GridView controlo dentro de um UpdatePanel controlo, definir a GridView propriedade do EnableSortingAndPagingCallbacks controlo para true não é suportado. No entanto, como o controlo UpdatePanel suporta postbacks assíncronos, quaisquer postbacks que alterem o GridView controlo dentro de um UpdatePanel controlo causam o mesmo comportamento que ordenar e paginar callbacks.

Utilização de um controlo UpdatePanel num modelo

No exemplo seguinte, um UpdatePanel controlo é usado no modelo de item de um GridView controlo. UpdatePanel os controlos em cada linha de dados são gerados automaticamente. O controlo de UpdatePanel cada linha contém um Label controlo para mostrar a quantidade do item nessa linha e um Button controlo para diminuir e aumentar a quantidade.


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

Observações

Neste tópico:

Introduction

Os controlos UpdatePanel são uma parte central da funcionalidade do AJAX em ASP.NET. São usados com o ScriptManager controlo para permitir a renderização parcial da página. A renderização parcial da página reduz a necessidade de postbacks síncronos e atualizações completas de página quando apenas parte da página precisa de ser atualizada. A renderização parcial da página melhora a experiência do utilizador porque reduz a cintilação do ecrã que ocorre durante uma postback de página inteira e melhora a interatividade da página Web.

Atualizar o conteúdo do Painel-de-Atualização

Quando a renderização parcial da página está ativada, um controlo pode realizar um postback que atualiza toda a página ou um postback assíncrono que atualiza o conteúdo de um ou mais UpdatePanel controlos. Se um controlo causa um postback assíncrono e atualiza um UpdatePanel controlo depende do seguinte:

  • Se a UpdateMode propriedade do UpdatePanel controlo estiver definida para Always, o UpdatePanel conteúdo do controlo é atualizado em cada postback que se origina da página. Isto inclui postbacks assíncronos de controlos que estão dentro de outros UpdatePanel controlos e postbacks de controlos que não estão dentro UpdatePanel de controlos.

  • Se a UpdateMode propriedade estiver definida para Conditional, o UpdatePanel conteúdo do controlo é atualizado nas seguintes circunstâncias:

    • Quando chamas explicitamente o Update método do UpdatePanel controlo.

    • Quando o UpdatePanel controlo está aninhado dentro de outro UpdatePanel controlo e o painel pai é atualizado.

    • Quando um postback é causado por um controlo que é definido como um gatilho usando a Triggers propriedade do UpdatePanel controlo. Neste cenário, o controlo desencadeia explicitamente uma atualização do conteúdo do painel. O controlo pode estar dentro ou fora do UpdatePanel comando ao qual o gatilho está associado.

    • Quando a ChildrenAsTriggers propriedade está definida como true e um controlo filho do UpdatePanel controlo causa um postback. Os controlos filhos dos controlos aninhados UpdatePanel não causam uma atualização ao controlo externo UpdatePanel a menos que estejam explicitamente definidos como gatilhos.

A combinação de definir a ChildrenAsTriggers propriedade para false e a UpdateMode propriedade para Always não é permitida e criará uma exceção.

Quando o controlo UpdatePanel executa uma publicação assíncrona, adiciona um cabeçalho HTTP personalizado. Alguns proxies removem este cabeçalho HTTP personalizado. Se isto acontecer, o servidor trata o pedido como um postback normal, o que causa um erro do cliente. Para resolver este problema, insira um campo de formulário personalizado quando realizar publicações assíncronas. Depois verifica o cabeçalho ou o campo de formulário personalizado no código do servidor.

Utilização no UpdatePanel

Pode usar múltiplos UpdatePanel controlos para atualizar várias regiões de página de forma independente. Quando a página que contém um ou mais UpdatePanel controlos é apresentada pela primeira vez, todo o conteúdo de todos os UpdatePanel controlos é renderizado e enviado para o navegador. Em postbacks assíncronos subsequentes, o conteúdo de cada UpdatePanel controlo pode não ser atualizado dependendo das definições do painel e da lógica do cliente ou servidor para painéis individuais.

Também pode usar UpdatePanel os controlos para o seguinte:

  • Nos controlos do utilizador.

  • Nas páginas mestra e de conteúdo.

  • Aninhado dentro de outros UpdatePanel controlos.

  • Dentro de controlos com templates, como os GridView controlos ou.Repeater

UpdatePanel Os controlos podem ser adicionados de forma declarativa ou programática.

Podes adicionar um UpdatePanel controlo programaticamente, mas não podes adicionar gatilhos programaticamente. Para criar um comportamento semelhante a um gatilho, pode registar um controlo na página como um controlo de postback assíncrono. Faz-se isto chamando o RegisterAsyncPostBackControl método do ScriptManager controlo. Podes então criar um gestor de eventos que corre em resposta ao postback assíncrono e, no handler, chamar o Update método do UpdatePanel controlo.

Aplicação de Estilos

O UpdatePanel controlo aceita atributos expando. Isto permite-te definir uma classe CSS para os elementos HTML que os controlos renderizam. Por exemplo, pode criar a marcação mostrada no seguinte exemplo:

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

A marcação no exemplo anterior renderiza o HTML de forma semelhante ao seguinte quando a página é executada:

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

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

Construtores

Name Description
UpdatePanel()

Inicializa uma nova instância da UpdatePanel classe.

Propriedades

Name Description
Adapter

Recebe o adaptador específico do navegador para o controlo.

(Herdado de Control)
AppRelativeTemplateSourceDirectory

Obtém ou define o diretório virtual relativo à aplicação do Page objeto ou UserControl que contém este controlo.

(Herdado de Control)
Attributes

Obtém a coleção de atributos da folha de estilo em cascata (CSS) do UpdatePanel controlo.

BindingContainer

Obtém o controlo que contém a ligação de dados desse controlo.

(Herdado de Control)
ChildControlsCreated

Recebe um valor que indica se os controlos filhos do controlo do servidor foram criados.

(Herdado de Control)
ChildrenAsTriggers

Recebe ou define um valor que indica se os postbacks dos controlos UpdatePanel imediatos de um controlo atualizam o conteúdo do painel.

ClientID

Obtém o ID de controlo para a marcação HTML gerada pelo ASP.NET.

(Herdado de Control)
ClientIDMode

Obtém ou define o algoritmo que é usado para gerar o valor da ClientID propriedade.

(Herdado de Control)
ClientIDSeparator

Obtém um valor de carácter que representa o carácter separador usado na ClientID propriedade.

(Herdado de Control)
ContentTemplate

Obtém ou define o modelo que define o conteúdo do UpdatePanel controlo.

ContentTemplateContainer

Obtém um objeto de controlo ao qual podes adicionar programaticamente controlos filhos.

Context

Obtém o controlo do HttpContext objeto associado ao servidor para o pedido Web atual.

(Herdado de Control)
Controls

Obtém o ControlCollection objeto que contém os controlos filhos para o UpdatePanel controlo.

DataItemContainer

Obtém uma referência ao contentor de nomes se o contentor implementar IDataItemContainer.

(Herdado de Control)
DataKeysContainer

Obtém uma referência ao contentor de nomes se o contentor implementar IDataKeysControl.

(Herdado de Control)
DesignMode

Obtém um valor que indica se um controlo está a ser usado numa superfície de projeto.

(Herdado de Control)
EnableTheming

Recebe ou define um valor que indica se os temas se aplicam a este controlo.

(Herdado de Control)
EnableViewState

Recebe ou define um valor que indica se o controlo do servidor mantém o seu estado de visualização, e o estado de vista de quaisquer controlos filhos que contém, para o cliente solicitante.

(Herdado de Control)
Events

Obtém uma lista de delegados handler de eventos para o controlo. Esta propriedade é somente leitura.

(Herdado de Control)
HasChildViewState

Recebe um valor que indica se os controlos filhos do controlo atual do servidor têm alguma configuração de estado de visualização guardada.

(Herdado de Control)
ID

Obtém ou define o identificador programático atribuído ao controlo do servidor.

(Herdado de Control)
IdSeparator

Faz com que o carácter seja usado para separar identificadores de controlo.

(Herdado de Control)
IsChildControlStateCleared

Obtém um valor que indica se os controlos contidos neste controlo têm estado de controlo.

(Herdado de Control)
IsInPartialRendering

Obtém um valor que indica se o controlo UpdatePanel está a ser atualizado como resultado de um postback assíncrono.

IsTrackingViewState

Recebe um valor que indica se o controlo do servidor está a guardar alterações ao estado de visualização.

(Herdado de Control)
IsViewStateEnabled

Recebe um valor que indica se o estado de visualização está ativado para este controlo.

(Herdado de Control)
LoadViewStateByID

Recebe um valor que indica se o controlo participa no carregamento do seu estado de visualização em ID vez de index.

(Herdado de Control)
NamingContainer

Obtém uma referência ao contentor de nomes do controlo do servidor, que cria um namespace único para diferenciar controlos de servidor com o mesmo ID valor de propriedade.

(Herdado de Control)
Page

Obtém uma referência à Page instância que contém o controlo do servidor.

(Herdado de Control)
Parent

Obtém uma referência ao controlo pai do controlo do servidor na hierarquia de controlo de página.

(Herdado de Control)
RenderingCompatibility

Recebe um valor que especifica a versão ASP.NET com a qual o HTML renderizado será compatível.

(Herdado de Control)
RenderMode

Recebe ou define um valor que indica se o conteúdo de um UpdatePanel controlo está incluído num HTML <div> ou <span> elemento.

RequiresUpdate

Recebe um valor que indica se o conteúdo do UpdatePanel controlo será atualizado.

Site

Obtém informação sobre o contentor que aloja o controlo atual quando renderizado numa superfície de design.

(Herdado de Control)
SkinID

Obtém ou fixa a pele para aplicar no controlo.

(Herdado de Control)
TemplateControl

Recebe ou define uma referência ao template que contém esse controlo.

(Herdado de Control)
TemplateSourceDirectory

Obtém o diretório virtual do Page ou UserControl que contém o controlo atual do servidor.

(Herdado de Control)
Triggers

Obtém um UpdatePanelTriggerCollection objeto que contém AsyncPostBackTrigger e PostBackTrigger objetos que foram registados declarativamente para o UpdatePanel controlo.

UniqueID

Obtém o identificador único e hierarquicamente qualificado para o controlo do servidor.

(Herdado de Control)
UpdateMode

Recebe ou define um valor que indica quando o conteúdo de um UpdatePanel controlo é atualizado.

ValidateRequestMode

Recebe ou define um valor que indica se o controlo verifica a entrada do cliente do navegador para valores potencialmente perigosos.

(Herdado de Control)
ViewState

Obtém um dicionário de informação de estado que permite guardar e restaurar o estado de visualização de um controlo de servidor através de múltiplos pedidos para a mesma página.

(Herdado de Control)
ViewStateIgnoresCase

Obtém um valor que indica se o StateBag objeto é indistinto a maiúsculas e maiúsculas.

(Herdado de Control)
ViewStateMode

Obtém ou define o modo view-state deste controlo.

(Herdado de Control)
Visible

Recebe ou define um valor que indica se um controlo de servidor é renderizado como UI na página.

(Herdado de Control)

Métodos

Name Description
AddedControl(Control, Int32)

Chamado após um controlo filho ser adicionado à Controls coleção do Control objeto.

(Herdado de Control)
AddParsedSubObject(Object)

Notifica o controlo do servidor que um elemento, seja XML ou HTML, foi analisado, e adiciona o elemento ao objeto do ControlCollection controlo do servidor.

(Herdado de Control)
ApplyStyleSheetSkin(Page)

Aplica as propriedades de estilo definidas na folha de estilo da página ao controlo.

(Herdado de Control)
BeginRenderTracing(TextWriter, Object)

Inicia o rastreio em tempo de design dos dados de renderização.

(Herdado de Control)
BuildProfileTree(String, Boolean)

Recolhe informações sobre o controlo do servidor e entrega-as à Trace propriedade para serem exibidas quando o rastreamento for ativado para a página.

(Herdado de Control)
ClearCachedClientID()

Define o valor em ClientID cache para null.

(Herdado de Control)
ClearChildControlState()

Apaga a informação de estado de controlo dos controlos filhos do controlo do servidor.

(Herdado de Control)
ClearChildState()

Apaga a informação de view-state e control-state de todos os controlos filhos do servidor.

(Herdado de Control)
ClearChildViewState()

Elimina a informação de estado de visualização de todos os controlos filhos do controlo do servidor.

(Herdado de Control)
ClearEffectiveClientIDMode()

Define a ClientIDMode propriedade da instância de controlo atual e de qualquer controlo filho para Inherit.

(Herdado de Control)
CreateChildControls()

Chamada pelo framework de páginas ASP.NET para notificar os controlos de servidor que utilizam implementação baseada em composição para criar quaisquer controlos filhos que contenham em preparação para publicação ou renderização.

(Herdado de Control)
CreateContentTemplateContainer()

Cria um Control objeto que atua como um contentor para controlos filhos que definem o UpdatePanel conteúdo do controlo.

CreateControlCollection()

Devolve a coleção de todos os controlos contidos no UpdatePanel controlo.

DataBind()

Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos.

(Herdado de Control)
DataBind(Boolean)

Vincula uma fonte de dados ao controlo do servidor invocado e a todos os seus controlos filhos com uma opção para elevar o DataBinding evento.

(Herdado de Control)
DataBindChildren()

Vincula uma fonte de dados aos controlos filhos do controlo do servidor.

(Herdado de Control)
Dispose()

Permite que o controlo do servidor realize a limpeza final antes de ser libertado da memória.

(Herdado de Control)
EndRenderTracing(TextWriter, Object)

Termina o rastreio de tempo de design dos dados de renderização.

(Herdado de Control)
EnsureChildControls()

Determina se o controlo do servidor contém controlos filhos. Se não o fizer, cria controlos filhos.

(Herdado de Control)
EnsureID()

Cria um identificador para controlos que não têm um identificador atribuído.

(Herdado de Control)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FindControl(String, Int32)

Pesquisa no contentor de nomenclatura atual um controlo de servidor com o especificado id e um inteiro, especificados no pathOffset parâmetro, o que auxilia na pesquisa. Não deve sobrepor-se a esta versão do FindControl método.

(Herdado de Control)
FindControl(String)

Procura no contentor de nomenclatura atual um controlo de servidor com o parâmetro especificado id .

(Herdado de Control)
Focus()

Define o foco de entrada num controlo.

(Herdado de Control)
GetDesignModeState()

Obtém dados de tempo de projeto para um controlo.

(Herdado de Control)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetRouteUrl(Object)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(RouteValueDictionary)

Obtém a URL que corresponde a um conjunto de parâmetros de rota.

(Herdado de Control)
GetRouteUrl(String, Object)

Obtém o URL que corresponde a um conjunto de parâmetros de rota e a um nome de rota.

(Herdado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtém o URL que corresponde a um conjunto de parâmetros de rota e a um nome de rota.

(Herdado de Control)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUniqueIDRelativeTo(Control)

Devolve a parte prefixada da UniqueID propriedade do controlo especificado.

(Herdado de Control)
HasControls()

Determina se o controlo do servidor contém algum controlo filho.

(Herdado de Control)
HasEvents()

Devolve um valor que indica se os eventos estão registados para o controlo ou para quaisquer controlos filhos.

(Herdado de Control)
Initialize()

Inicializa a UpdatePanel coleção de gatilhos de controlo se a renderização parcial da página estiver ativada.

IsLiteralContent()

Determina se o controlo do servidor contém apenas conteúdo literal.

(Herdado de Control)
LoadControlState(Object)

Restaura a informação do estado de controlo a partir de um pedido de página anterior que foi guardado pelo SaveControlState() método.

(Herdado de Control)
LoadViewState(Object)

Restaura a informação de estado de visualização de um pedido anterior de página que foi guardado pelo SaveViewState() método.

(Herdado de Control)
MapPathSecure(String)

Recupera o caminho físico para o qual um caminho virtual, seja absoluto ou relativo, mapeia.

(Herdado de Control)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnBubbleEvent(Object, EventArgs)

Determina se o evento para o controlo do servidor é passado para a hierarquia de controlo do servidor UI da página.

(Herdado de Control)
OnDataBinding(EventArgs)

Eleva o DataBinding evento.

(Herdado de Control)
OnInit(EventArgs)

Eleva o Init evento.

OnLoad(EventArgs)

Levanta o Load evento para o UpdatePanel controlo e invoca o Initialize() método quando a renderização parcial da página não está ativada.

OnPreRender(EventArgs)

Eleva o PreRender evento.

OnUnload(EventArgs)

Eleva o evento base Unload .

OpenFile(String)

Recebe um Stream usado para ler um ficheiro.

(Herdado de Control)
RaiseBubbleEvent(Object, EventArgs)

Atribui quaisquer fontes do evento e da sua informação ao pai do controlo.

(Herdado de Control)
RemovedControl(Control)

Chamado após um controlo filho ser removido da Controls coleção do Control objeto.

(Herdado de Control)
Render(HtmlTextWriter)

Eleva o Render(HtmlTextWriter) evento.

RenderChildren(HtmlTextWriter)

Eleva o RenderChildren(HtmlTextWriter) evento.

RenderControl(HtmlTextWriter, ControlAdapter)

Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter usando um objeto fornecido ControlAdapter .

(Herdado de Control)
RenderControl(HtmlTextWriter)

Fornece conteúdo de controlo do servidor para um objeto fornecido HtmlTextWriter e armazena informação de rastreamento sobre o controlo se o rastreio estiver ativado.

(Herdado de Control)
ResolveAdapter()

Faz com que o adaptador de controlo seja responsável por renderizar o controlo especificado.

(Herdado de Control)
ResolveClientUrl(String)

Recebe um URL que pode ser usado pelo navegador.

(Herdado de Control)
ResolveUrl(String)

Converte uma URL numa que seja utilizável no cliente solicitante.

(Herdado de Control)
SaveControlState()

Guarda quaisquer alterações no estado de controlo do servidor que tenham ocorrido desde que a página foi publicada de volta no servidor.

(Herdado de Control)
SaveViewState()

Guarda quaisquer alterações de estado de visualização no controlo do servidor que tenham ocorrido desde o momento em que a página foi publicada de volta no servidor.

(Herdado de Control)
SetDesignModeState(IDictionary)

Define dados em tempo de projeto para um controlo.

(Herdado de Control)
SetRenderMethodDelegate(RenderMethod)

Atribui um delegado handler de eventos para renderizar o controlo do servidor e o seu conteúdo no controlo pai.

(Herdado de Control)
SetTraceData(Object, Object, Object)

Define os dados de rastreio para o rastreio em tempo de design dos dados de renderização, usando o objeto rastreado, a chave de dados de traço e o valor dos dados de traço.

(Herdado de Control)
SetTraceData(Object, Object)

Define os dados de rastreio para o rastreio em tempo de design dos dados de renderização, usando a chave de dados de traço e o valor dos dados de traço.

(Herdado de Control)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
TrackViewState()

Causa o rastreio das alterações de estado de visualização no controlo do servidor para que possam ser armazenadas no objeto do StateBag controlo do servidor. Este objeto é acessível através da ViewState propriedade.

(Herdado de Control)
Update()

Causa uma atualização do conteúdo de um UpdatePanel controlo.

evento

Name Description
DataBinding

Ocorre quando o controlo do servidor se liga a uma fonte de dados.

(Herdado de Control)
Disposed

Ocorre quando um controlo de servidor é libertado da memória, que é a última etapa do ciclo de vida do controlo do servidor quando uma página ASP.NET é solicitada.

(Herdado de Control)
Init

Ocorre quando o controlo do servidor é inicializado, que é o primeiro passo no seu ciclo de vida.

(Herdado de Control)
Load

Ocorre quando o controlo do servidor é carregado no Page objeto.

(Herdado de Control)
PreRender

Ocorre depois do carregamento do Control objeto, mas antes da renderização.

(Herdado de Control)
Unload

Ocorre quando o controlo do servidor é descarregado da memória.

(Herdado de Control)

Implementações de Interface Explícita

Name Description
IAttributeAccessor.GetAttribute(String)

Devolve um atributo de um controlo Web usando um nome especificado.

IAttributeAccessor.SetAttribute(String, String)

Define o valor do atributo de controlo especificado.

IControlBuilderAccessor.ControlBuilder

Para uma descrição deste elemento, veja ControlBuilder.

(Herdado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para uma descrição deste elemento, veja GetDesignModeState().

(Herdado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para uma descrição deste elemento, veja SetDesignModeState(IDictionary).

(Herdado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para uma descrição deste elemento, veja SetOwnerControl(Control).

(Herdado de Control)
IControlDesignerAccessor.UserData

Para uma descrição deste elemento, veja UserData.

(Herdado de Control)
IDataBindingsAccessor.DataBindings

Para uma descrição deste elemento, veja DataBindings.

(Herdado de Control)
IDataBindingsAccessor.HasDataBindings

Para uma descrição deste elemento, veja HasDataBindings.

(Herdado de Control)
IExpressionsAccessor.Expressions

Para uma descrição deste elemento, veja Expressions.

(Herdado de Control)
IExpressionsAccessor.HasExpressions

Para uma descrição deste elemento, veja HasExpressions.

(Herdado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para uma descrição deste elemento, veja AddParsedSubObject(Object).

(Herdado de Control)

Métodos da Extensão

Name Description
FindDataSourceControl(Control)

Devolve a fonte de dados associada ao controlo de dados para o controlo especificado.

FindFieldTemplate(Control, String)

Devolve o modelo de campo para a coluna especificada no contentor de nomenclatura do controlo especificado.

FindMetaTable(Control)

Devolve o objeto metatable para o controlo de dados que contém.

Aplica-se a

Ver também