Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
UpdatePanel, classe
Permet la restitution partielle de sections d'une page sans publication (postback).
Assembly : System.Web.Extensions (dans System.Web.Extensions.dll)
Le type UpdatePanel expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
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 | Infrastructure. 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 pour le 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. (Substitue Control.Controls.) |
|
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 rend persistant son état d'affichage, ainsi que celui de tous les contrôles enfants qu'il contient, sur le client à l'origine de la demande. (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 | Infrastructure. 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é Control.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. |
|
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 sous la forme d'une interface utilisateur sur la page. (Hérité de Control.) |
| Nom | Description | |
|---|---|---|
|
AddedControl | Appelée après l'ajout d'un contrôle enfant à la collection Controls de l'objet Control. (Hérité de Control.) |
|
AddParsedSubObject | Avertit le contrôle serveur qu'un élément XML ou HTML a été analysé et l'ajoute à l'objet ControlCollection du contrôle serveur. (Hérité de Control.) |
|
ApplyStyleSheetSkin | Applique les propriétés de style définies dans la feuille de style de la page au contrôle. (Hérité de Control.) |
|
BuildProfileTree | Infrastructure. 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 | Infrastructure. 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 | Infrastructure. Affecte la valeur Inherit à la propriété ClientIDMode de l'instance de contrôle actuelle et de tous contrôles enfants. (Hérité de Control.) |
|
CreateChildControls | Appelé par l'infrastructure de page ASP.NET pour avertir les contrôles serveur qui utilisent une implémentation basée sur la composition qu'ils doivent créer tous les contrôles enfants qu'ils contiennent en préparation 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. (Substitue Control.CreateControlCollection().) |
|
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.) |
|
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'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (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) | Infrastructure. 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 | Infrastructure. Obtient les données au moment du design pour un contrôle. (Hérité de Control.) |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (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 | 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 | Infrastructure. Détermine si le contrôle serveur ne détient qu'un contenu littéral. (Hérité de Control.) |
|
LoadControlState | 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 | Restaure les informations d'état d'affichage à partir d'une demande de page antérieure enregistrée par la méthode SaveViewState. (Hérité de Control.) |
|
MapPathSecure | 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 de l'objet Object actif. (Hérité de Object.) |
|
OnBubbleEvent | Détermine si l'événement pour le 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 | Déclenche l'événement DataBinding. (Hérité de Control.) |
|
OnInit | Déclenche l'événement Init. (Substitue Control.OnInit(EventArgs).) |
|
OnLoad | 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. (Substitue Control.OnLoad(EventArgs).) |
|
OnPreRender | Déclenche l'événement PreRender. (Substitue Control.OnPreRender(EventArgs).) |
|
OnUnload | Déclenche l'événement de base Unload. (Substitue Control.OnUnload(EventArgs).) |
|
OpenFile | Obtient un Stream utilisé pour lire un fichier. (Hérité de Control.) |
|
RaiseBubbleEvent | Assigne les sources éventuelles de l'événement et ses informations au parent du contrôle. (Hérité de Control.) |
|
RemovedControl | Appelée après la suppression d'un contrôle enfant dans la collection Controls de l'objet Control. (Hérité de Control.) |
|
Render | Déclenche l'événement Render. (Substitue Control.Render(HtmlTextWriter).) |
|
RenderChildren | Déclenche l'événement RenderChildren. (Substitue Control.RenderChildren(HtmlTextWriter).) |
|
RenderControl(HtmlTextWriter) | Renvoie le contenu du contrôle serveur dans un objet HtmlTextWriter fourni et stocke des informations de traçage au sujet du 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 | Obtient une URL qui peut être utilisée par le navigateur. (Hérité de Control.) |
|
ResolveUrl | Convertit une URL en une URL que le client soit en mesure d'utiliser. (Hérité de Control.) |
|
SaveControlState | Enregistre les modifications éventuellement apportées à l'état du contrôle serveur depuis la publication de la page sur le serveur. (Hérité de Control.) |
|
SaveViewState | Enregistre les modifications éventuellement apportées à l'état d'affichage du contrôle serveur depuis la publication de la page sur le serveur. (Hérité de Control.) |
|
SetDesignModeState | Définit les données au moment du design pour un contrôle. (Hérité de Control.) |
|
SetRenderMethodDelegate | Infrastructure. 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.) |
|
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é Control.ViewState. (Hérité de Control.) |
|
Update | Entraîne une mise à jour du contenu d'un contrôle UpdatePanel. |
| Nom | Description | |
|---|---|---|
|
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.) |
| Nom | Description | |
|---|---|---|
|
FindDataSourceControl | Retourne la source de données associée au contrôle de données pour le contrôle spécifié. (Défini par DynamicDataExtensions.) |
|
FindFieldTemplate | Retourne le modèle de champ pour la colonne spécifiée dans le conteneur d'attribution de noms du contrôle spécifié. (Défini par DynamicDataExtensions.) |
|
FindMetaTable | Retourne l'objet Metatable pour le contrôle de données conteneur. (Défini par DynamicDataExtensions.) |
Dans cette rubrique :
Introduction
Les contrôles UpdatePanel forment une partie centrale de la fonctionnalité AJAX dans ASP.NET. Leur utilisation avec le contrôle ScriptManager permet une restitution de page partielle. La restitution de page partielle réduit le besoin de publications synchrones et de mises à jour complètes de pages si seulement une partie de la page doit être mise à jour. La restitution de page partielle améliore l'expérience de l'utilisateur parce qu'elle réduit le scintillement d'écran qui se produit pendant la publication d'une page entière et parce qu'elle améliore l'interactivité de pages Web.
Actualisation du contenu de UpdatePanel
Lorsque la restitution de page partielle est activée, un contrôle peut exécuter une publication qui met à jour la page entière ou exécuter une publication asynchrone qui met à jour le contenu d'un ou plusieurs contrôles UpdatePanel. Qu'un contrôle déclenche une publication asynchrone et une mise à jour d'un contrôle UpdatePanel dépend des éléments suivants :
-
Si la propriété UpdateMode du contrôle UpdatePanel a la valeur Always, le contenu du contrôle UpdatePanel est mis à jour à chaque publication qui provient de la page. Cela inclut les publications asynchrones à partir de contrôles à l'intérieur d'autres contrôles UpdatePanel et les publications à partir de contrôles qui ne sont pas à l'intérieur de contrôles UpdatePanel.
-
Si la propriété UpdateMode a la valeur Conditional, le contenu du contrôle UpdatePanel est mis à jour dans les circonstances suivantes :
-
Lorsque vous appelez explicitement la méthode Update du contrôle UpdatePanel.
-
Lorsque le contrôle UpdatePanel est imbriqué à l'intérieur d'un autre contrôle UpdatePanel, et le panneau parent est mis à jour.
-
Lorsqu'une publication est provoquée par un contrôle défini comme déclencheur par l'utilisation de la propriété Triggers du contrôle UpdatePanel. Dans ce scénario, le contrôle déclenche explicitement une mise à jour du contenu du panneau. Le contrôle peut être soit à l'intérieur soit à l'extérieur du contrôle UpdatePanel auquel est associé le déclencheur.
-
Lorsque la propriété ChildrenAsTriggers a la valeur true et un contrôle enfant du contrôle UpdatePanel entraîne une publication. Les contrôles enfants des contrôles UpdatePanel imbriqués n'entraînent pas la mise à jour du contrôle UpdatePanel externe sauf s'ils sont définis explicitement comme déclencheurs.
-
La combinaison de l'affectation de la valeur false à la propriété ChildrenAsTriggers et de la valeur Always à la propriété UpdateMode n'est pas autorisée et lève une exception.
Lorsque le contrôle UpdatePanel effectue une publication asynchrone, il ajoute un en-tête HTTP personnalisé. Certains proxies suppriment cet en-tête HTTP personnalisé. Le cas échéant, le serveur gère la requête comme une publication (postback) standard, ce qui provoque une erreur 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 serveur.
Utilisation de UpdatePanel
Vous pouvez utiliser plusieurs contrôles UpdatePanel pour mettre à jour des sections de page différentes de façon indépendante. Lorsque la page qui contient un ou plusieurs contrôles UpdatePanel est restituée en premier, l'intégralité du contenu de tous les contrôles UpdatePanel est restituée et envoyée au navigateur. Pour les publications asynchrones ultérieures, le contenu de chaque contrôle UpdatePanel n'est mis à jour qu'en fonction des paramètres du panneau et de la logique client ou serveur des panneaux individuels.
Vous pouvez également utiliser des contrôles UpdatePanel dans les scénarios suivants :
-
Dans des contrôles utilisateur.
-
Dans des pages maître et de contenu.
-
Imbriqués à l'intérieur d'autres contrôles UpdatePanel.
-
À l'intérieur de contrôles basés sur des modèles tels que les contrôles GridView ou Repeater.
Les contrôles UpdatePanel peuvent être ajoutés de manière déclarative ou par programme.
Vous pouvez ajouter un contrôle UpdatePanel par programme, mais vous ne pouvez pas ajouter de déclencheurs par programme. Pour créer un comportement semblable à un déclencheur, vous pouvez enregistrer dans la page un contrôle comme contrôle de publication asynchrone. Pour faire cela, appelez la méthode RegisterAsyncPostBackControl du contrôle ScriptManager. Vous pouvez ensuite créer un gestionnaire d'événements qui s'exécute en réponse à une publication asynchrone et, dans le gestionnaire, appeler la méthode Update du contrôle UpdatePanel.
Application de styles
Le contrôle UpdatePanel accepte des attributs expando. Cela vous permet de définir une classe CSS pour les élémentsHTML que les contrôles restituent. Par exemple, vous pouvez créer le balisage affiché dans l'exemple suivant :
<asp:UpdatePanel runat="server" class="myStyle"> </asp:UpdatePanel>
Le balisage de l'exemple précédent restitue un code HTML semblable au suivant 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>
Les exemples suivants montrent des utilisations différentes du contrôle UpdatePanel.
Contrôles à l'intérieur d'un contrôle UpdatePanel
L'exemple suivant montre comment mettre des contrôles à l'intérieur d'un contrôle UpdatePanel pour réduire le scintillement d'écran lorsque vous publiez au serveur. Dans cet exemple, un contrôle Calendar et un contrôle DropDownList sont à l'intérieur d'un contrôle UpdatePanel. Par défaut, la propriété UpdateMode a la valeur Always et la propriété ChildrenAsTriggers a la valeur true. Par conséquent, les contrôles enfants du panneau entraînent 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>
Scénario maître/détail avec les contrôles UpdatePanel
Dans l'exemple suivant, un contrôle UpdatePanel est utilisé dans un scénario maître/détail qui affiche des commandes et des détails de commande de la base de données Northwind. Un contrôle UpdatePanel contient le contrôle GridView qui affiche une liste de commandes. Un deuxième contrôle UpdatePanel contient un contrôle DetailsView qui affiche les détails d'une commande. Lorsque vous sélectionnez une commande dans la première table, les détails de cette commande sont affichés dans la deuxième table. La deuxième table est mise à jour de façon asynchrone selon la sélection dans la première table. Les opérations de tri et de pagination dans la table sommaire des commandes entraîne é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>
Si vous mettez un contrôle GridView à l'intérieur d'un contrôle UpdatePanel, l'affectation de la valeur true à la propriété EnableSortingAndPagingCallbacks du contrôle GridView n'est pas prise en charge. Toutefois, comme le contrôle UpdatePanel prend en charge les publications asynchrones, toute publication qui modifie le contrôle GridView à l'intérieur d'un contrôle UpdatePanel entraîne 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 contrôle UpdatePanel est utilisé dans le modèle d'élément d'un contrôle GridView. Les contrôles UpdatePanel dans chaque ligne de données sont générés automatiquement. Le contrôle UpdatePanel de chaque ligne contient un contrôle Label pour afficher la quantité de l'élément sur cette ligne et un contrôle Button pour réduire 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>
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.