Condividi tramite


UpdatePanel Classe

Definizione

Consente il rendering parziale delle sezioni di una pagina senza 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
Ereditarietà
UpdatePanel
Attributi
Implementazioni

Esempio

Negli esempi seguenti vengono illustrati vari usi del UpdatePanel controllo .

Controlli all'interno di un controllo UpdatePanel

Nell'esempio seguente viene illustrato come inserire i controlli all'interno di un UpdatePanel controllo per ridurre lo sfarfallio dello schermo quando si esegue il post nel server. In questo esempio, un Calendar e un DropDownList controllo si trovano all'interno di un UpdatePanel controllo . Per impostazione predefinita, la UpdateMode proprietà è Always e la ChildrenAsTriggers proprietà è true. Pertanto, i controlli figlio del pannello causano un postback asincrono.


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

Scenario master/dettaglio con controlli UpdatePanel

Nell'esempio seguente viene usato un UpdatePanel controllo in uno scenario master/dettaglio che mostra gli ordini e i dettagli dell'ordine dal database Northwind. Un UpdatePanel controllo contiene il GridView controllo che visualizza un elenco di ordini. Un secondo UpdatePanel controllo contiene un DetailsView controllo che visualizza i dettagli di un ordine. Quando si seleziona un ordine dalla prima tabella, i dettagli per tale ordine vengono visualizzati nella seconda tabella. La seconda tabella viene aggiornata in modo asincrono in base alla selezione nella prima tabella. Anche le operazioni di ordinamento e paging nella tabella di riepilogo degli ordini causano aggiornamenti parziali.

<%@ 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 si inserisce un controllo all'interno di GridView un UpdatePanel controllo, l'impostazione GridView della proprietà del EnableSortingAndPagingCallbacks controllo su true non è supportata. Tuttavia, poiché il UpdatePanel controllo supporta postback asincroni, eventuali postback che modificano il GridView controllo all'interno di un UpdatePanel controllo determinano lo stesso comportamento dell'ordinamento e del paging dei callback.

Uso di un controllo UpdatePanel in un modello

Nell'esempio seguente viene utilizzato un UpdatePanel controllo nel modello di elemento di un GridView controllo . UpdatePanel i controlli in ogni riga di dati vengono generati automaticamente. Il controllo di UpdatePanel ogni riga contiene un Label controllo per visualizzare la quantità dell'elemento in tale riga e un Button controllo per ridurre e aumentare la quantità.


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

Commenti

In questo argomento:

Introduzione

UpdatePanel i controlli sono una parte centrale della funzionalità AJAX in ASP.NET. Vengono usati con il controllo per abilitare il ScriptManager rendering di pagine parziali. Il rendering di pagine parziali riduce la necessità di postback sincroni e di aggiornamenti di pagina completi quando è necessario aggiornare solo una parte della pagina. Il rendering di pagine parziali migliora l'esperienza utente perché riduce lo sfarfallio dello schermo che si verifica durante un postback a pagina intera e migliora l'interattività delle pagine Web.

Aggiornamento del contenuto updatePanel

Quando il rendering parziale della pagina è abilitato, un controllo può eseguire un postback che aggiorna l'intera pagina o un postback asincrono che aggiorna il contenuto di uno o più UpdatePanel controlli. Se un controllo causa un postback asincrono e aggiorna un UpdatePanel controllo dipende dagli elementi seguenti:

  • Se la UpdateMode proprietà del UpdatePanel controllo è impostata su Always, il UpdatePanel contenuto del controllo viene aggiornato in ogni postback che ha origine dalla pagina. Sono inclusi postback asincroni dai controlli che si trovano all'interno di altri UpdatePanel controlli e postback da controlli che non si trovano all'interno UpdatePanel di controlli.

  • Se la UpdateMode proprietà è impostata su Conditional, il UpdatePanel contenuto del controllo viene aggiornato nelle circostanze seguenti:

    • Quando si chiama il Update metodo del UpdatePanel controllo in modo esplicito.

    • Quando il UpdatePanel controllo viene annidato all'interno di un altro UpdatePanel controllo e il pannello padre viene aggiornato.

    • Quando un postback è causato da un controllo definito come trigger utilizzando la Triggers proprietà del UpdatePanel controllo . In questo scenario, il controllo attiva in modo esplicito un aggiornamento del contenuto del pannello. Il controllo può essere all'interno o all'esterno del UpdatePanel controllo a cui è associato il trigger.

    • Quando la ChildrenAsTriggers proprietà è impostata su true e un controllo figlio del UpdatePanel controllo genera un postback. I controlli figlio dei controlli annidati UpdatePanel non causano un aggiornamento al controllo esterno UpdatePanel , a meno che non siano definiti in modo esplicito come trigger.

La combinazione di impostazione della ChildrenAsTriggers proprietà su false e della UpdateMode proprietà su Always non è consentita e genererà un'eccezione.

Quando il UpdatePanel controllo esegue un post asincrono, aggiunge un'intestazione HTTP personalizzata. Alcuni proxy rimuovono questa intestazione HTTP personalizzata. In questo caso, il server gestisce la richiesta come postback normale, causando un errore del client. Per risolvere questo problema, inserire un campo modulo personalizzato quando si eseguono post asincroni. Controllare quindi l'intestazione o il campo modulo personalizzato nel codice del server.

Utilizzo di UpdatePanel

È possibile usare più UpdatePanel controlli per aggiornare in modo indipendente più aree di pagina. Quando viene eseguito il rendering della pagina contenente uno o più UpdatePanel controlli, viene eseguito il rendering di tutti i contenuti di tutti i UpdatePanel controlli e inviati al browser. Nei postback asincroni successivi, il contenuto di ogni UpdatePanel controllo potrebbe non essere aggiornato a seconda delle impostazioni del pannello e della logica client o server per singoli pannelli.

È anche possibile usare UpdatePanel i controlli per quanto segue:

  • Nei controlli utente.

  • Nelle pagine master e di contenuto.

  • Annidato all'interno di altri UpdatePanel controlli.

  • All'interno di controlli basato su modelli, ad esempio i GridView controlli o Repeater .

UpdatePanel i controlli possono essere aggiunti in modo dichiarativo o a livello di codice.

È possibile aggiungere un UpdatePanel controllo a livello di codice, ma non è possibile aggiungere trigger a livello di codice. Per creare un comportamento simile al trigger, è possibile registrare un controllo nella pagina come controllo di postback asincrono. A tale scopo, chiamare il RegisterAsyncPostBackControl metodo del ScriptManager controllo . È quindi possibile creare un gestore eventi che viene eseguito in risposta al postback asincrono e nel gestore chiamare il Update metodo del UpdatePanel controllo.

Applicazione di stili

Il UpdatePanel controllo accetta attributi expando. In questo modo è possibile impostare una classe CSS per gli elementi HTML di cui viene eseguito il rendering i controlli. Ad esempio, è possibile creare il markup illustrato nell'esempio seguente:

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

Il markup nell'esempio precedente esegue il rendering del codice HTML simile al seguente quando viene eseguita la pagina:

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

Sintassi dichiarativa

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

Costruttori

Nome Descrizione
UpdatePanel()

Inizializza una nuova istanza della classe UpdatePanel.

Proprietà

Nome Descrizione
Adapter

Ottiene l'adattatore specifico del browser per il controllo .

(Ereditato da Control)
AppRelativeTemplateSourceDirectory

Ottiene o imposta la directory virtuale relativa all'applicazione dell'oggetto Page o UserControl che contiene questo controllo.

(Ereditato da Control)
Attributes

Ottiene la raccolta di attributi CSS (Cascading Style Sheet) del UpdatePanel controllo.

BindingContainer

Ottiene il controllo che contiene il data binding di questo controllo.

(Ereditato da Control)
ChildControlsCreated

Ottiene un valore che indica se sono stati creati i controlli figlio del controllo server.

(Ereditato da Control)
ChildrenAsTriggers

Ottiene o imposta un valore che indica se i postback dai controlli figlio immediati di un UpdatePanel controllo aggiornano il contenuto del pannello.

ClientID

Ottiene l'ID di controllo per il markup HTML generato da ASP.NET.

(Ereditato da Control)
ClientIDMode

Ottiene o imposta l'algoritmo utilizzato per generare il valore della ClientID proprietà .

(Ereditato da Control)
ClientIDSeparator

Ottiene un valore di carattere che rappresenta il carattere separatore utilizzato nella ClientID proprietà .

(Ereditato da Control)
ContentTemplate

Ottiene o imposta il modello che definisce il contenuto del UpdatePanel controllo.

ContentTemplateContainer

Ottiene un oggetto controllo a cui è possibile aggiungere controlli figlio a livello di codice.

Context

Ottiene l'oggetto HttpContext associato al controllo server per la richiesta Web corrente.

(Ereditato da Control)
Controls

Ottiene l'oggetto ControlCollection contenente i controlli figlio per il UpdatePanel controllo .

DataItemContainer

Ottiene un riferimento al contenitore di denominazione se il contenitore di denominazione implementa IDataItemContainer.

(Ereditato da Control)
DataKeysContainer

Ottiene un riferimento al contenitore di denominazione se il contenitore di denominazione implementa IDataKeysControl.

(Ereditato da Control)
DesignMode

Ottiene un valore che indica se un controllo viene utilizzato in un'area di progettazione.

(Ereditato da Control)
EnableTheming

Ottiene o imposta un valore che indica se i temi si applicano a questo controllo.

(Ereditato da Control)
EnableViewState

Ottiene o imposta un valore che indica se il controllo server mantiene lo stato di visualizzazione e lo stato di visualizzazione di tutti i controlli figlio contenuti, al client richiedente.

(Ereditato da Control)
Events

Ottiene un elenco di delegati del gestore eventi per il controllo . Questa proprietà è di sola lettura.

(Ereditato da Control)
HasChildViewState

Ottiene un valore che indica se i controlli figlio del controllo server corrente hanno impostazioni dello stato di visualizzazione salvate.

(Ereditato da Control)
ID

Ottiene o imposta l'identificatore programmatico assegnato al controllo server.

(Ereditato da Control)
IdSeparator

Ottiene il carattere utilizzato per separare gli identificatori di controllo.

(Ereditato da Control)
IsChildControlStateCleared

Ottiene un valore che indica se i controlli contenuti all'interno di questo controllo hanno uno stato di controllo.

(Ereditato da Control)
IsInPartialRendering

Ottiene un valore che indica se il UpdatePanel controllo viene aggiornato in seguito a un postback asincrono.

IsTrackingViewState

Ottiene un valore che indica se il controllo server salva le modifiche apportate allo stato di visualizzazione.

(Ereditato da Control)
IsViewStateEnabled

Ottiene un valore che indica se lo stato di visualizzazione è abilitato per questo controllo.

(Ereditato da Control)
LoadViewStateByID

Ottiene un valore che indica se il controllo partecipa al caricamento dello stato di visualizzazione in ID base al posto dell'indice.

(Ereditato da Control)
NamingContainer

Ottiene un riferimento al contenitore di denominazione del controllo server, che crea uno spazio dei nomi univoco per la differenziazione tra i controlli server con lo stesso ID valore della proprietà.

(Ereditato da Control)
Page

Ottiene un riferimento all'istanza Page che contiene il controllo server.

(Ereditato da Control)
Parent

Ottiene un riferimento al controllo padre del controllo server nella gerarchia dei controlli pagina.

(Ereditato da Control)
RenderingCompatibility

Ottiene un valore che specifica la versione ASP.NET con cui è stato eseguito il rendering del codice HTML sarà compatibile.

(Ereditato da Control)
RenderMode

Ottiene o imposta un valore che indica se il contenuto di un UpdatePanel controllo è racchiuso in un elemento o <span> HTML<div>.

RequiresUpdate

Ottiene un valore che indica se il contenuto del UpdatePanel controllo verrà aggiornato.

Site

Ottiene informazioni sul contenitore che ospita il controllo corrente durante il rendering in un'area di progettazione.

(Ereditato da Control)
SkinID

Ottiene o imposta l'interfaccia da applicare al controllo.

(Ereditato da Control)
TemplateControl

Ottiene o imposta un riferimento al modello che contiene questo controllo.

(Ereditato da Control)
TemplateSourceDirectory

Ottiene la directory virtuale dell'oggetto Page o UserControl che contiene il controllo server corrente.

(Ereditato da Control)
Triggers

Ottiene un UpdatePanelTriggerCollection oggetto che contiene AsyncPostBackTrigger oggetti e PostBackTrigger registrati in modo dichiarativo per il UpdatePanel controllo.

UniqueID

Ottiene l'identificatore univoco e qualificato gerarchicamente per il controllo server.

(Ereditato da Control)
UpdateMode

Ottiene o imposta un valore che indica quando il contenuto di un UpdatePanel controllo viene aggiornato.

ValidateRequestMode

Ottiene o imposta un valore che indica se il controllo controlla l'input client dal browser per individuare valori potenzialmente pericolosi.

(Ereditato da Control)
ViewState

Ottiene un dizionario di informazioni sullo stato che consente di salvare e ripristinare lo stato di visualizzazione di un controllo server tra più richieste per la stessa pagina.

(Ereditato da Control)
ViewStateIgnoresCase

Ottiene un valore che indica se l'oggetto StateBag non fa distinzione tra maiuscole e minuscole.

(Ereditato da Control)
ViewStateMode

Ottiene o imposta la modalità dello stato di visualizzazione di questo controllo.

(Ereditato da Control)
Visible

Ottiene o imposta un valore che indica se il rendering di un controllo server viene eseguito come interfaccia utente nella pagina.

(Ereditato da Control)

Metodi

Nome Descrizione
AddedControl(Control, Int32)

Chiamato dopo l'aggiunta di un controllo figlio all'insieme Controls dell'oggetto Control .

(Ereditato da Control)
AddParsedSubObject(Object)

Notifica al controllo server che un elemento, XML o HTML, è stato analizzato e aggiunge l'elemento all'oggetto del ControlCollection controllo server.

(Ereditato da Control)
ApplyStyleSheetSkin(Page)

Applica le proprietà di stile definite nel foglio di stile della pagina al controllo .

(Ereditato da Control)
BeginRenderTracing(TextWriter, Object)

Inizia la traccia in fase di progettazione dei dati di rendering.

(Ereditato da Control)
BuildProfileTree(String, Boolean)

Raccoglie informazioni sul controllo server e le distribuisce alla Trace proprietà da visualizzare quando la traccia è abilitata per la pagina.

(Ereditato da Control)
ClearCachedClientID()

Imposta il valore memorizzato nella ClientID cache su null.

(Ereditato da Control)
ClearChildControlState()

Elimina le informazioni sullo stato del controllo per i controlli figlio del controllo server.

(Ereditato da Control)
ClearChildState()

Elimina le informazioni sullo stato di visualizzazione e sullo stato del controllo per tutti i controlli figlio del controllo server.

(Ereditato da Control)
ClearChildViewState()

Elimina le informazioni sullo stato di visualizzazione per tutti i controlli figlio del controllo server.

(Ereditato da Control)
ClearEffectiveClientIDMode()

Imposta la ClientIDMode proprietà dell'istanza del controllo corrente e di tutti i controlli figlio su Inherit.

(Ereditato da Control)
CreateChildControls()

Chiamato dal framework di pagina ASP.NET per notificare ai controlli server che usano l'implementazione basata sulla composizione per creare tutti i controlli figlio che contengono in preparazione alla registrazione o al rendering.

(Ereditato da Control)
CreateContentTemplateContainer()

Crea un Control oggetto che funge da contenitore per i controlli figlio che definiscono il UpdatePanel contenuto del controllo.

CreateControlCollection()

Restituisce l'insieme di tutti i controlli contenuti nel UpdatePanel controllo .

DataBind()

Associa un'origine dati al controllo server richiamato e a tutti i relativi controlli figlio.

(Ereditato da Control)
DataBind(Boolean)

Associa un'origine dati al controllo server richiamato e a tutti i relativi controlli figlio con un'opzione per generare l'evento DataBinding .

(Ereditato da Control)
DataBindChildren()

Associa un'origine dati ai controlli figlio del controllo server.

(Ereditato da Control)
Dispose()

Consente a un controllo server di eseguire la pulizia finale prima che venga rilasciata dalla memoria.

(Ereditato da Control)
EndRenderTracing(TextWriter, Object)

Termina la traccia in fase di progettazione dei dati di rendering.

(Ereditato da Control)
EnsureChildControls()

Determina se il controllo server contiene controlli figlio. In caso contrario, crea controlli figlio.

(Ereditato da Control)
EnsureID()

Crea un identificatore per i controlli a cui non è assegnato un identificatore.

(Ereditato da Control)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindControl(String, Int32)

Cerca nel contenitore di denominazione corrente un controllo server con l'oggetto specificato id e un numero intero, specificato nel pathOffset parametro , che facilita la ricerca. Non è consigliabile eseguire l'override di questa versione del FindControl metodo .

(Ereditato da Control)
FindControl(String)

Cerca nel contenitore di denominazione corrente un controllo server con il parametro specificato id .

(Ereditato da Control)
Focus()

Imposta lo stato attivo dell'input su un controllo .

(Ereditato da Control)
GetDesignModeState()

Ottiene i dati in fase di progettazione per un controllo .

(Ereditato da Control)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRouteUrl(Object)

Ottiene l'URL che corrisponde a un set di parametri di route.

(Ereditato da Control)
GetRouteUrl(RouteValueDictionary)

Ottiene l'URL che corrisponde a un set di parametri di route.

(Ereditato da Control)
GetRouteUrl(String, Object)

Ottiene l'URL che corrisponde a un set di parametri di route e un nome di route.

(Ereditato da Control)
GetRouteUrl(String, RouteValueDictionary)

Ottiene l'URL che corrisponde a un set di parametri di route e un nome di route.

(Ereditato da Control)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetUniqueIDRelativeTo(Control)

Restituisce la parte con prefisso della UniqueID proprietà del controllo specificato.

(Ereditato da Control)
HasControls()

Determina se il controllo server contiene controlli figlio.

(Ereditato da Control)
HasEvents()

Restituisce un valore che indica se gli eventi vengono registrati per il controllo o per i controlli figlio.

(Ereditato da Control)
Initialize()

Inizializza la raccolta di trigger di UpdatePanel controllo se il rendering parziale della pagina è abilitato.

IsLiteralContent()

Determina se il controllo server contiene solo contenuto letterale.

(Ereditato da Control)
LoadControlState(Object)

Ripristina le informazioni sullo stato del controllo da una richiesta di pagina precedente salvata dal SaveControlState() metodo .

(Ereditato da Control)
LoadViewState(Object)

Ripristina le informazioni sullo stato di visualizzazione da una richiesta di pagina precedente salvata dal SaveViewState() metodo .

(Ereditato da Control)
MapPathSecure(String)

Recupera il percorso fisico a cui viene mappato un percorso virtuale, assoluto o relativo.

(Ereditato da Control)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnBubbleEvent(Object, EventArgs)

Determina se l'evento per il controllo server viene passato alla gerarchia di controllo server dell'interfaccia utente della pagina.

(Ereditato da Control)
OnDataBinding(EventArgs)

Genera l'evento DataBinding.

(Ereditato da Control)
OnInit(EventArgs)

Genera l'evento Init.

OnLoad(EventArgs)

Genera l'evento Load per il UpdatePanel controllo e richiama il metodo quando il Initialize() rendering parziale della pagina non è abilitato.

OnPreRender(EventArgs)

Genera l'evento PreRender.

OnUnload(EventArgs)

Genera l'evento di base Unload .

OpenFile(String)

Ottiene un Stream oggetto utilizzato per leggere un file.

(Ereditato da Control)
RaiseBubbleEvent(Object, EventArgs)

Assegna tutte le origini dell'evento e le relative informazioni all'elemento padre del controllo.

(Ereditato da Control)
RemovedControl(Control)

Chiamato dopo che un controllo figlio viene rimosso dall'insieme Controls dell'oggetto Control .

(Ereditato da Control)
Render(HtmlTextWriter)

Genera l'evento Render(HtmlTextWriter).

RenderChildren(HtmlTextWriter)

Genera l'evento RenderChildren(HtmlTextWriter).

RenderControl(HtmlTextWriter, ControlAdapter)

Restituisce il contenuto del controllo server a un oggetto fornito HtmlTextWriter utilizzando un oggetto fornito ControlAdapter .

(Ereditato da Control)
RenderControl(HtmlTextWriter)

Restituisce il contenuto del controllo server in un oggetto fornito HtmlTextWriter e archivia le informazioni di traccia sul controllo se la traccia è abilitata.

(Ereditato da Control)
ResolveAdapter()

Ottiene l'adattatore di controllo responsabile del rendering del controllo specificato.

(Ereditato da Control)
ResolveClientUrl(String)

Ottiene un URL che può essere utilizzato dal browser.

(Ereditato da Control)
ResolveUrl(String)

Converte un URL in un URL utilizzabile nel client richiedente.

(Ereditato da Control)
SaveControlState()

Salva le modifiche apportate allo stato del controllo server dopo il postback della pagina al server.

(Ereditato da Control)
SaveViewState()

Salva le modifiche apportate allo stato di visualizzazione controllo server dopo il postback della pagina al server.

(Ereditato da Control)
SetDesignModeState(IDictionary)

Imposta i dati in fase di progettazione per un controllo .

(Ereditato da Control)
SetRenderMethodDelegate(RenderMethod)

Assegna un delegato del gestore eventi per eseguire il rendering del controllo server e del relativo contenuto nel controllo padre.

(Ereditato da Control)
SetTraceData(Object, Object, Object)

Imposta i dati di traccia per la traccia in fase di progettazione dei dati di rendering, usando l'oggetto tracciato, la chiave dei dati di traccia e il valore dei dati di traccia.

(Ereditato da Control)
SetTraceData(Object, Object)

Imposta i dati di traccia per la traccia in fase di progettazione dei dati di rendering, usando la chiave dei dati di traccia e il valore dei dati di traccia.

(Ereditato da Control)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TrackViewState()

Determina il rilevamento delle modifiche dello stato di visualizzazione al controllo server in modo che possano essere archiviate nell'oggetto del StateBag controllo server. Questo oggetto è accessibile tramite la ViewState proprietà .

(Ereditato da Control)
Update()

Causa un aggiornamento del contenuto di un UpdatePanel controllo .

Eventi

Nome Descrizione
DataBinding

Si verifica quando il controllo server viene associato a un'origine dati.

(Ereditato da Control)
Disposed

Si verifica quando viene rilasciato un controllo server dalla memoria, ovvero l'ultima fase del ciclo di vita del controllo server quando viene richiesta una pagina ASP.NET.

(Ereditato da Control)
Init

Si verifica quando il controllo server viene inizializzato, ovvero il primo passaggio del ciclo di vita.

(Ereditato da Control)
Load

Si verifica quando il controllo server viene caricato nell'oggetto Page .

(Ereditato da Control)
PreRender

Si verifica dopo il caricamento dell'oggetto Control , ma prima del rendering.

(Ereditato da Control)
Unload

Si verifica quando il controllo server viene scaricato dalla memoria.

(Ereditato da Control)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IAttributeAccessor.GetAttribute(String)

Restituisce un attributo di un controllo Web utilizzando un nome specificato.

IAttributeAccessor.SetAttribute(String, String)

Imposta il valore dell'attributo di controllo specificato.

IControlBuilderAccessor.ControlBuilder

Per una descrizione di questo membro, vedere ControlBuilder.

(Ereditato da Control)
IControlDesignerAccessor.GetDesignModeState()

Per una descrizione di questo membro, vedere GetDesignModeState().

(Ereditato da Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Per una descrizione di questo membro, vedere SetDesignModeState(IDictionary).

(Ereditato da Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Per una descrizione di questo membro, vedere SetOwnerControl(Control).

(Ereditato da Control)
IControlDesignerAccessor.UserData

Per una descrizione di questo membro, vedere UserData.

(Ereditato da Control)
IDataBindingsAccessor.DataBindings

Per una descrizione di questo membro, vedere DataBindings.

(Ereditato da Control)
IDataBindingsAccessor.HasDataBindings

Per una descrizione di questo membro, vedere HasDataBindings.

(Ereditato da Control)
IExpressionsAccessor.Expressions

Per una descrizione di questo membro, vedere Expressions.

(Ereditato da Control)
IExpressionsAccessor.HasExpressions

Per una descrizione di questo membro, vedere HasExpressions.

(Ereditato da Control)
IParserAccessor.AddParsedSubObject(Object)

Per una descrizione di questo membro, vedere AddParsedSubObject(Object).

(Ereditato da Control)

Metodi di estensione

Nome Descrizione
FindDataSourceControl(Control)

Restituisce l'origine dati associata al controllo dati per il controllo specificato.

FindFieldTemplate(Control, String)

Restituisce il modello di campo per la colonna specificata nel contenitore di denominazione del controllo specificato.

FindMetaTable(Control)

Restituisce l'oggetto metatable per il controllo dati contenitore.

Si applica a

Vedi anche