UpdatePanel Classe

Définition

Permet le rendu partiel de sections d’une page sans publication (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
Héritage
UpdatePanel
Attributs
Implémente

Exemples

Les exemples suivants illustrent les différentes utilisations du UpdatePanel contrôle.

Contrôles à l’intérieur d’un contrôle UpdatePanel

L’exemple suivant montre comment placer des contrôles à l’intérieur d’un UpdatePanel contrôle pour réduire le scintillement de l’écran lorsque vous publiez sur le serveur. Dans cet exemple, un Calendar et un DropDownList contrôle se trouvent à l’intérieur d’un UpdatePanel contrôle. Par défaut, la UpdateMode propriété est Always et la ChildrenAsTriggers propriété est true. Par conséquent, les contrôles enfants du panneau provoquent une publication asynchrone.


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

Scénario maître/détail avec les contrôles UpdatePanel

Dans l’exemple suivant, un UpdatePanel contrôle est utilisé dans un scénario maître/détail qui affiche les commandes et les détails des commandes de la base de données Northwind. Un UpdatePanel contrôle contient le GridView contrôle qui affiche une liste de commandes. Un deuxième UpdatePanel contrôle contient un DetailsView contrôle qui affiche les détails d’une commande. Lorsque vous sélectionnez une commande dans le premier tableau, les détails de cette commande s’affichent dans la deuxième table. La deuxième table est mise à jour de manière asynchrone en fonction de la sélection dans la première table. Les opérations de tri et de pagination dans la table récapitulative des commandes entraînent également des mises à jour partielles.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlDataSource2.SelectParameters["OrderID"].DefaultValue = 
            GridView1.SelectedDataKey.Value.ToString();
    }
</script>

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        SqlDataSource2.SelectParameters("OrderID").DefaultValue = _
        GridView1.SelectedDataKey.Value.ToString()
    End Sub

</script>

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

Si vous placez un GridView contrôle à l’intérieur d’un UpdatePanel contrôle, la définition de la GridView propriété du EnableSortingAndPagingCallbacks contrôle sur true n’est pas prise en charge. Toutefois, étant donné que le UpdatePanel contrôle prend en charge les publications asynchrones, toutes les publications qui modifient le contrôle à l’intérieur GridView d’un UpdatePanel contrôle entraînent le même comportement que les rappels de tri et de pagination.

Utilisation d’un contrôle UpdatePanel dans un modèle

Dans l’exemple suivant, un UpdatePanel contrôle est utilisé dans le modèle d’élément d’un GridView contrôle. UpdatePanel les contrôles de chaque ligne de données sont générés automatiquement. Le contrôle de UpdatePanel chaque ligne contient un Label contrôle pour afficher la quantité de l’élément dans cette ligne et un Button contrôle pour diminuer et augmenter 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>

Remarques

Dans cette rubrique :

Introduction

UpdatePanel les contrôles sont un élément central de la fonctionnalité AJAX dans ASP.NET. Ils sont utilisés avec le contrôle pour activer le ScriptManager rendu de page partielle. Le rendu de page partielle réduit la nécessité de publier des publications synchrones et de terminer les mises à jour de page lorsque seule une partie de la page doit être mise à jour. Le rendu de page partielle améliore l’expérience utilisateur, car il réduit le scintillement de l’écran qui se produit lors d’une publication pleine page et améliore l’interactivité des pages web.

Actualisation du contenu UpdatePanel

Lorsque le rendu de page partielle est activé, un contrôle peut effectuer une publication qui met à jour l’ensemble de la page ou une publication asynchrone qui met à jour le contenu d’un ou plusieurs UpdatePanel contrôles. La question de savoir si un contrôle génère une publication asynchrone et met à jour un UpdatePanel contrôle dépend des éléments suivants :

  • Si la UpdateMode propriété du contrôle a la UpdatePanel valeur Always, le UpdatePanel contenu du contrôle est mis à jour sur chaque publication provenant de la page. Cela inclut les publications asynchrones à partir de contrôles qui se trouvent à l’intérieur d’autres UpdatePanel contrôles et les publications de contrôles qui ne se trouvent pas dans UpdatePanel des contrôles.

  • Si la UpdateMode propriété a la valeur Conditional, le UpdatePanel contenu du contrôle est mis à jour dans les circonstances suivantes :

    • Lorsque vous appelez explicitement la Update méthode du UpdatePanel contrôle.

    • Lorsque le UpdatePanel contrôle est imbriqué à l’intérieur d’un autre UpdatePanel contrôle et que le panneau parent est mis à jour.

    • Lorsqu’une publication est provoquée par un contrôle qui est défini comme déclencheur à l’aide de la Triggers propriété du UpdatePanel contrôle. Dans ce scénario, le contrôle déclenche explicitement une mise à jour du contenu du panneau. Le contrôle peut se trouver à l’intérieur ou à l’extérieur du UpdatePanel contrôle auquel le déclencheur est associé.

    • Lorsque la ChildrenAsTriggers propriété a la true valeur et qu’un contrôle enfant du UpdatePanel contrôle provoque une publication. Les contrôles enfants des contrôles imbriqués UpdatePanel n’entraînent pas de mise à jour du contrôle externe UpdatePanel , sauf s’ils sont explicitement définis en tant que déclencheurs.

La combinaison de la définition de la ChildrenAsTriggers propriété sur false et de la UpdateMode propriété sur Always n’est pas autorisée et lève une exception.

Lorsque le UpdatePanel contrôle effectue une publication asynchrone, il ajoute un en-tête HTTP personnalisé. Certains proxys suppriment cet en-tête HTTP personnalisé. Si cela se produit, le serveur gère la demande comme une publication régulière, ce qui provoque une erreur du client. Pour résoudre ce problème, insérez un champ de formulaire personnalisé lorsque vous effectuez des publications asynchrones. Vérifiez ensuite l’en-tête ou le champ de formulaire personnalisé dans le code du serveur.

Utilisation de UpdatePanel

Vous pouvez utiliser plusieurs UpdatePanel contrôles pour mettre à jour plusieurs régions de page indépendamment. Lorsque la page qui contient un ou plusieurs UpdatePanel contrôles est rendue pour la première fois, tout le contenu de tous les UpdatePanel contrôles est rendu et envoyé au navigateur. Dans les publications asynchrones suivantes, le contenu de chaque UpdatePanel contrôle peut ne pas être mis à jour en fonction des paramètres du panneau et de la logique client ou serveur pour les panneaux individuels.

Vous pouvez également utiliser UpdatePanel des contrôles pour les éléments suivants :

  • Dans les contrôles utilisateur.

  • Sur les pages maître et de contenu.

  • Imbriqué à l’intérieur d’autres UpdatePanel contrôles.

  • À l’intérieur de contrôles modèle tels que les GridView contrôles ou Repeater .

UpdatePanel les contrôles peuvent être ajoutés de manière déclarative ou par programmation.

Vous pouvez ajouter un UpdatePanel contrôle par programmation, mais vous ne pouvez pas ajouter de déclencheurs par programmation. Pour créer un comportement de type déclencheur, vous pouvez inscrire un contrôle sur la page en tant que contrôle de publication asynchrone. Pour ce faire, appelez la RegisterAsyncPostBackControl méthode du ScriptManager contrôle. Vous pouvez ensuite créer un gestionnaire d’événements qui s’exécute en réponse à la publication asynchrone et, dans le gestionnaire, appeler la Update méthode du UpdatePanel contrôle.

Application de styles

Le UpdatePanel contrôle accepte les attributs expando. Cela vous permet de définir une classe CSS pour les éléments HTML rendus par les contrôles. Par exemple, vous pouvez créer le balisage indiqué dans l’exemple suivant :

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

Le balisage de l’exemple précédent rend le code HTML similaire à ce qui suit lorsque la page s’exécute :

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

Syntaxe déclarative

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

Constructeurs

UpdatePanel()

Initialise une nouvelle instance de la classe UpdatePanel.

Propriétés

Adapter

Obtient l'adaptateur spécifique au navigateur pour le contrôle.

(Hérité de Control)
AppRelativeTemplateSourceDirectory

Obtient ou définit le répertoire virtuel relatif à l'application de l'objet Page ou UserControl qui contient ce contrôle.

(Hérité de Control)
Attributes

Obtient la collection d'attributs de feuille de style en cascade (CSS) du contrôle UpdatePanel.

BindingContainer

Obtient le contrôle qui contient la liaison de données de ce contrôle.

(Hérité de Control)
ChildControlsCreated

Obtient une valeur qui indique si des contrôles enfants du contrôle serveur ont été créés.

(Hérité de Control)
ChildrenAsTriggers

Obtient ou définit une valeur qui indique si les publications à partir de contrôles enfants immédiats d'un contrôle UpdatePanel mettent à jour le contenu du panneau.

ClientID

Obtient l’ID de contrôle du balisage HTML généré par ASP.NET.

(Hérité de Control)
ClientIDMode

Obtient ou définit l'algorithme utilisé pour générer la valeur de la propriété ClientID.

(Hérité de Control)
ClientIDSeparator

Obtient une valeur de caractère représentant le caractère de séparation utilisé dans la propriété ClientID.

(Hérité de Control)
ContentTemplate

Obtient ou définit le modèle qui définit le contenu du contrôle UpdatePanel.

ContentTemplateContainer

Obtient un objet de contrôle auquel vous pouvez ajouter des contrôles enfants par programme.

Context

Obtient l'objet HttpContext associé au contrôle serveur pour la demande Web en cours.

(Hérité de Control)
Controls

Obtient l'objet ControlCollection qui contient les contrôles enfants du contrôle UpdatePanel.

DataItemContainer

Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataItemContainer.

(Hérité de Control)
DataKeysContainer

Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataKeysControl.

(Hérité de Control)
DesignMode

Obtient une valeur indiquant si un contrôle est utilisé sur une aire de conception.

(Hérité de Control)
EnableTheming

Obtient ou définit une valeur indiquant si les thèmes s'appliquent à ce contrôle.

(Hérité de Control)
EnableViewState

Obtient ou définit une valeur indiquant si le contrôle serveur conserve son état d’affichage, et l’état d’affichage de tous les contrôles enfants qu’il contient, au client demandeur.

(Hérité de Control)
Events

Obtient la liste des délégués de gestionnaires d'événements pour le contrôle. Cette propriété est en lecture seule.

(Hérité de Control)
HasChildViewState

Obtient une valeur indiquant si les contrôles enfants du contrôle serveur en cours possèdent des paramètres d'état d'affichage enregistrés.

(Hérité de Control)
ID

Obtient ou définit l'ID programmatique assigné au contrôle serveur.

(Hérité de Control)
IdSeparator

Obtient le caractère utilisé pour séparer des identificateurs de contrôle.

(Hérité de Control)
IsChildControlStateCleared

Obtient une valeur indiquant si les contrôles contenus dans ce contrôle utilisent l'état du contrôle.

(Hérité de Control)
IsInPartialRendering

Obtient une valeur qui indique si le contrôle UpdatePanel est mis à jour par suite d'une publication asynchrone.

IsTrackingViewState

Obtient une valeur qui indique si le contrôle serveur enregistre les modifications apportées à son état d'affichage.

(Hérité de Control)
IsViewStateEnabled

Obtient une valeur indiquant si l'état d'affichage est activé pour ce contrôle.

(Hérité de Control)
LoadViewStateByID

Obtient une valeur indiquant si le contrôle participe au chargement de son état d'affichage par ID et non par index.

(Hérité de Control)
NamingContainer

Obtient une référence au conteneur d'attribution de noms du contrôle serveur, qui crée un espace de noms unique pour différencier les contrôles serveur dont la propriété ID possède la même valeur.

(Hérité de Control)
Page

Obtient une référence à l'instance de Page qui contient le contrôle serveur.

(Hérité de Control)
Parent

Obtient une référence au contrôle parent du contrôle serveur dans la hiérarchie des contrôles de la page.

(Hérité de Control)
RenderingCompatibility

Obtient une valeur qui spécifie la version ASP.NET avec laquelle le HTML restitué sera compatible.

(Hérité de Control)
RenderMode

Obtient ou définit une valeur qui indique si un contenu de contrôle UpdatePanel est compris dans un <div> HTML ou un élément <span>.

RequiresUpdate

Obtient une valeur qui indique si le contenu du contrôle UpdatePanel va être mis à jour.

Site

Obtient des informations sur le conteneur qui héberge le contrôle en cours lorsqu'il est rendu sur une aire de conception.

(Hérité de Control)
SkinID

Obtient ou définit l’apparence à appliquer au contrôle.

(Hérité de Control)
TemplateControl

Obtient ou définit une référence au modèle qui contient ce contrôle.

(Hérité de Control)
TemplateSourceDirectory

Obtient le répertoire virtuel du Page ou du UserControl qui contient le contrôle serveur en cours.

(Hérité de Control)
Triggers

Obtient un objet UpdatePanelTriggerCollection qui contient des objets AsyncPostBackTrigger et PostBackTrigger enregistrés de manière déclarative pour le contrôle UpdatePanel.

UniqueID

Obtient l'identificateur unique qualifié sur le plan hiérarchique du contrôle serveur.

(Hérité de Control)
UpdateMode

Obtient ou définit une valeur qui indique quand un contenu de contrôle UpdatePanel est mis à jour.

ValidateRequestMode

Obtient ou définit une valeur qui indique si le contrôle vérifie l'entrée cliente du navigateur à la recherche de valeurs potentiellement dangereuses.

(Hérité de Control)
ViewState

Obtient un dictionnaire d'informations d'état qui vous permet d'enregistrer et de restaurer l'état d'affichage d'un contrôle serveur entre plusieurs demandes de la même page.

(Hérité de Control)
ViewStateIgnoresCase

Obtient une valeur qui indique si l'objet StateBag respecte la casse.

(Hérité de Control)
ViewStateMode

Obtient ou définit le mode d'état d'affichage de ce contrôle.

(Hérité de Control)
Visible

Obtient ou définit une valeur qui indique si un contrôle serveur est rendu en tant qu’interface utilisateur sur la page.

(Hérité de Control)

Méthodes

AddedControl(Control, Int32)

Méthode appelée après qu’un contrôle enfant est ajouté à la collection Controls de l’objet Control.

(Hérité de Control)
AddParsedSubObject(Object)

Avertit le contrôle serveur qu’un élément XML ou HTML a été analysé, et ajoute l’élément à l’objet ControlCollection du contrôle serveur.

(Hérité de Control)
ApplyStyleSheetSkin(Page)

Applique les propriétés de style définies dans la feuille de style de la page au contrôle.

(Hérité de Control)
BeginRenderTracing(TextWriter, Object)

Commence le traçage au moment du design des données de rendu.

(Hérité de Control)
BuildProfileTree(String, Boolean)

Collecte des informations sur le contrôle serveur et les livre à la propriété Trace à afficher lorsque le traçage est activé pour la page.

(Hérité de Control)
ClearCachedClientID()

Affecte à la valeur ClientID mise en cache la valeur null.

(Hérité de Control)
ClearChildControlState()

Supprime les informations sur l'état du contrôle des contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearChildState()

Supprime les informations sur l'état d'affichage et sur l'état du contrôle de tous les contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearChildViewState()

Supprime les informations d'état d'affichage de tous les contrôles enfants du contrôle serveur.

(Hérité de Control)
ClearEffectiveClientIDMode()

Affecte la valeur ClientIDMode à la propriété Inherit de l'instance de contrôle actuelle et de tous contrôles enfants.

(Hérité de Control)
CreateChildControls()

Appelée par l’infrastructure de page ASP.NET pour signaler aux contrôles serveur qu’ils doivent utiliser l’implémentation basée sur la composition pour créer les contrôles enfants qu’ils contiennent en vue de la publication ou du rendu.

(Hérité de Control)
CreateContentTemplateContainer()

Crée un objet Control qui agit comme un conteneur pour contrôles enfants qui définissent le contenu du contrôle UpdatePanel.

CreateControlCollection()

Retourne la collection de tous les contrôles contenus dans le contrôle UpdatePanel.

DataBind()

Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants.

(Hérité de Control)
DataBind(Boolean)

Lie une source de données au contrôle serveur appelé et tous ses contrôles enfants avec une option pour déclencher l'événement DataBinding.

(Hérité de Control)
DataBindChildren()

Lie une source de données aux contrôles enfants du contrôle serveur.

(Hérité de Control)
Dispose()

Permet à un contrôle serveur d'effectuer le nettoyage final avant qu'il soit libéré de la mémoire.

(Hérité de Control)
EndRenderTracing(TextWriter, Object)

Met fin au traçage au moment du design des données de rendu.

(Hérité de Control)
EnsureChildControls()

Détermine si le contrôle serveur contient des contrôles enfants. S'il ne contient pas de contrôles enfants, il en crée.

(Hérité de Control)
EnsureID()

Crée un identificateur pour les contrôles auxquels aucun identificateur n'est assigné.

(Hérité de Control)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FindControl(String)

Recherche un contrôle serveur possédant le paramètre id spécifié dans le conteneur d'attribution de noms actuel.

(Hérité de Control)
FindControl(String, Int32)

Recherche le conteneur d'attribution de noms actuel d'un contrôle serveur avec l'id spécifié et un entier, spécifié dans le paramètre pathOffset, qui facilite la recherche. Vous ne devez pas substituer cette version de la méthode FindControl.

(Hérité de Control)
Focus()

Affecte le focus d'entrée à un contrôle.

(Hérité de Control)
GetDesignModeState()

Obtient les données au moment du design pour un contrôle.

(Hérité de Control)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetRouteUrl(Object)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire.

(Hérité de Control)
GetRouteUrl(RouteValueDictionary)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire.

(Hérité de Control)
GetRouteUrl(String, Object)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire.

(Hérité de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire et à un nom d'itinéraire.

(Hérité de Control)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetUniqueIDRelativeTo(Control)

Retourne la partie préfixée de la propriété UniqueID du contrôle spécifié.

(Hérité de Control)
HasControls()

Détermine si le contrôle serveur contient des contrôles enfants.

(Hérité de Control)
HasEvents()

Retourne une valeur indiquant si des événements sont inscrits pour le contrôle ou des contrôles enfants.

(Hérité de Control)
Initialize()

Initialise la collection de déclencheurs de contrôles UpdatePanel si la restitution de page partielle est activée.

IsLiteralContent()

Détermine si le contrôle serveur ne détient qu'un contenu littéral.

(Hérité de Control)
LoadControlState(Object)

Restaure des informations sur l'état du contrôle à partir d'une demande de page antérieure enregistrée par la méthode SaveControlState().

(Hérité de Control)
LoadViewState(Object)

Restaure les informations d’état d’affichage d’une précédente requête de page enregistrées par la méthode SaveViewState().

(Hérité de Control)
MapPathSecure(String)

Récupère le chemin d'accès physique auquel un chemin d'accès virtuel, absolu ou relatif, correspond.

(Hérité de Control)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnBubbleEvent(Object, EventArgs)

Détermine si l’événement du contrôle serveur est passé dans la hiérarchie des contrôles serveur de l’interface utilisateur de la page.

(Hérité de Control)
OnDataBinding(EventArgs)

Déclenche l’événement DataBinding.

(Hérité de Control)
OnInit(EventArgs)

Déclenche l’événement Init.

OnLoad(EventArgs)

Déclenche l'événement Load pour le contrôle UpdatePanel et appelle la méthode Initialize() lorsque la restitution de page partielle n'est pas activée.

OnPreRender(EventArgs)

Déclenche l’événement PreRender.

OnUnload(EventArgs)

Déclenche l'événement de base Unload.

OpenFile(String)

Obtient un Stream utilisé pour lire un fichier.

(Hérité de Control)
RaiseBubbleEvent(Object, EventArgs)

Assigne les sources éventuelles de l'événement et ses informations au parent du contrôle.

(Hérité de Control)
RemovedControl(Control)

Méthode appelée après la suppression d’un contrôle enfant de la collection Controls de l’objet Control.

(Hérité de Control)
Render(HtmlTextWriter)

Déclenche l’événement Render(HtmlTextWriter).

RenderChildren(HtmlTextWriter)

Déclenche l’événement RenderChildren(HtmlTextWriter).

RenderControl(HtmlTextWriter)

Envoie le contenu du contrôle serveur à un objet HtmlTextWriter fourni et stocke les informations de traçage sur le contrôle si le traçage est activé.

(Hérité de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Génère le contenu du contrôle serveur dans un objet HtmlTextWriter à l'aide d'un objet ControlAdapter fourni.

(Hérité de Control)
ResolveAdapter()

Obtient l'adaptateur de contrôles responsable du rendu du contrôle spécifié.

(Hérité de Control)
ResolveClientUrl(String)

Obtient une URL qui peut être utilisée par le navigateur.

(Hérité de Control)
ResolveUrl(String)

Convertit une URL en une URL que le client soit en mesure d'utiliser.

(Hérité de Control)
SaveControlState()

Enregistre tous les changements d’état de contrôle serveur qui ont eu lieu depuis que la page a été publiée sur le serveur.

(Hérité de Control)
SaveViewState()

Enregistre les changements d’état d’affichage du contrôle serveur qui se sont produits depuis que la page a été republiée sur le serveur.

(Hérité de Control)
SetDesignModeState(IDictionary)

Définit les données au moment du design pour un contrôle.

(Hérité de Control)
SetRenderMethodDelegate(RenderMethod)

Assigne un délégué de gestionnaires d'événements pour générer le rendu du contrôle serveur et de son contenu dans son contrôle parent.

(Hérité de Control)
SetTraceData(Object, Object)

Définit les données de trace pour le suivi du rendu des données au moment du design à l'aide de la clé des données de trace et de la valeur des données de trace.

(Hérité de Control)
SetTraceData(Object, Object, Object)

Définit les données de trace pour le suivi du rendu des données au moment du design, à l'aide de l'objet suivi, de la clé des données de trace et de la valeur des données de trace.

(Hérité de Control)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TrackViewState()

Provoque le suivi des modifications de l'état d'affichage pour le contrôle serveur afin qu'elles puissent être stockées dans l'objet StateBag du contrôle serveur. Cet objet est accessible via la propriété ViewState.

(Hérité de Control)
Update()

Entraîne une mise à jour du contenu d'un contrôle UpdatePanel.

Événements

DataBinding

Se produit lorsque le contrôle serveur se lie à une source de données.

(Hérité de Control)
Disposed

Se produit lorsqu'un contrôle serveur est libéré de la mémoire, ce qui constitue la dernière étape du cycle de vie d'un contrôle serveur en cas de demande d'une page ASP.NET.

(Hérité de Control)
Init

Se produit lorsque le contrôle serveur est initialisé, ce qui constitue la première étape de son cycle de vie.

(Hérité de Control)
Load

Se produit lorsque le contrôle serveur est chargé dans l'objet Page.

(Hérité de Control)
PreRender

Se produit après le chargement de l'objet Control mais avant le rendu.

(Hérité de Control)
Unload

Se produit lorsque le contrôle serveur est déchargé de la mémoire.

(Hérité de Control)

Implémentations d’interfaces explicites

IAttributeAccessor.GetAttribute(String)

Retourne un attribut d'un contrôle Web à l'aide d'un nom spécifié.

IAttributeAccessor.SetAttribute(String, String)

Définit la valeur de l'attribut du contrôle spécifié.

IControlBuilderAccessor.ControlBuilder

Pour obtenir une description de ce membre, consultez ControlBuilder.

(Hérité de Control)
IControlDesignerAccessor.GetDesignModeState()

Pour obtenir une description de ce membre, consultez GetDesignModeState().

(Hérité de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Pour obtenir une description de ce membre, consultez SetDesignModeState(IDictionary).

(Hérité de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Pour obtenir une description de ce membre, consultez SetOwnerControl(Control).

(Hérité de Control)
IControlDesignerAccessor.UserData

Pour obtenir une description de ce membre, consultez UserData.

(Hérité de Control)
IDataBindingsAccessor.DataBindings

Pour obtenir une description de ce membre, consultez DataBindings.

(Hérité de Control)
IDataBindingsAccessor.HasDataBindings

Pour obtenir une description de ce membre, consultez HasDataBindings.

(Hérité de Control)
IExpressionsAccessor.Expressions

Pour obtenir une description de ce membre, consultez Expressions.

(Hérité de Control)
IExpressionsAccessor.HasExpressions

Pour obtenir une description de ce membre, consultez HasExpressions.

(Hérité de Control)
IParserAccessor.AddParsedSubObject(Object)

Pour obtenir une description de ce membre, consultez AddParsedSubObject(Object).

(Hérité de Control)

Méthodes d’extension

FindDataSourceControl(Control)

Retourne la source de données associée au contrôle de données pour le contrôle spécifié.

FindFieldTemplate(Control, String)

Retourne le modèle de champ pour la colonne spécifiée dans le conteneur d'attribution de noms du contrôle spécifié.

FindMetaTable(Control)

Retourne l'objet Metatable pour le contrôle de données conteneur.

S’applique à

Voir aussi