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
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

UpdatePanel, classe

Permet la restitution partielle de sections d'une page sans publication (postback).

System.Object
  System.Web.UI.Control
    System.Web.UI.UpdatePanel

Espace de noms :  System.Web.UI
Assembly :  System.Web.Extensions (dans System.Web.Extensions.dll)
public class UpdatePanel : Control, 
	IAttributeAccessor
<asp:UpdatePanel />

Le type UpdatePanel expose les membres suivants.

  Nom Description
Méthode publique UpdatePanel Initialise une nouvelle instance de la classe UpdatePanel.
Début
  Nom Description
Propriété protégée Adapter Obtient l'adaptateur spécifique au navigateur pour le contrôle. (Hérité de Control.)
Propriété publique 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.)
Propriété publique Attributes Obtient la collection d'attributs de feuille de style en cascade (CSS) du contrôle UpdatePanel.
Propriété publique BindingContainer Infrastructure. Obtient le contrôle qui contient la liaison de données de ce contrôle. (Hérité de Control.)
Propriété protégée ChildControlsCreated Obtient une valeur qui indique si des contrôles enfants du contrôle serveur ont été créés. (Hérité de Control.)
Propriété publique 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.
Propriété publique ClientID Obtient l'ID de contrôle pour le balisage HTML généré par ASP.NET. (Hérité de Control.)
Propriété publique ClientIDMode Obtient ou définit l'algorithme utilisé pour générer la valeur de la propriété ClientID. (Hérité de Control.)
Propriété protégée 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.)
Propriété publique ContentTemplate Obtient ou définit le modèle qui définit le contenu du contrôle UpdatePanel.
Propriété publique ContentTemplateContainer Obtient un objet de contrôle auquel vous pouvez ajouter des contrôles enfants par programme.
Propriété protégée Context Obtient l'objet HttpContext associé au contrôle serveur pour la demande Web en cours. (Hérité de Control.)
Propriété publique Controls Obtient l'objet ControlCollection qui contient les contrôles enfants du contrôle UpdatePanel. (Substitue Control.Controls.)
Propriété publique DataItemContainer Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataItemContainer. (Hérité de Control.)
Propriété publique DataKeysContainer Obtient une référence au conteneur d'attribution de noms si celui-ci implémente IDataKeysControl. (Hérité de Control.)
Propriété protégée DesignMode Obtient une valeur indiquant si un contrôle est utilisé sur une aire de conception. (Hérité de Control.)
Propriété publique EnableTheming Obtient ou définit une valeur indiquant si les thèmes s'appliquent à ce contrôle. (Hérité de Control.)
Propriété publique 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.)
Propriété protégée 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.)
Propriété protégée 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.)
Propriété publique ID Obtient ou définit l'ID programmatique assigné au contrôle serveur. (Hérité de Control.)
Propriété protégée IdSeparator Infrastructure. Obtient le caractère utilisé pour séparer des identificateurs de contrôle. (Hérité de Control.)
Propriété protégée IsChildControlStateCleared Obtient une valeur indiquant si les contrôles contenus dans ce contrôle utilisent l'état du contrôle. (Hérité de Control.)
Propriété publique IsInPartialRendering Obtient une valeur qui indique si le contrôle UpdatePanel est mis à jour par suite d'une publication asynchrone.
Propriété protégée IsTrackingViewState Obtient une valeur qui indique si le contrôle serveur enregistre les modifications apportées à son état d'affichage. (Hérité de Control.)
Propriété protégée IsViewStateEnabled Obtient une valeur indiquant si l'état d'affichage est activé pour ce contrôle. (Hérité de Control.)
Propriété protégée 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.)
Propriété publique 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.)
Propriété publique Page Obtient une référence à l'instance de Page qui contient le contrôle serveur. (Hérité de Control.)
Propriété publique 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.)
Propriété publique RenderingCompatibility Obtient une valeur qui spécifie la version ASP.NET avec laquelle le HTML restitué sera compatible. (Hérité de Control.)
Propriété publique 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>.
Propriété protégée RequiresUpdate Obtient une valeur qui indique si le contenu du contrôle UpdatePanel va être mis à jour.
Propriété publique 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.)
Propriété publique SkinID Obtient ou définit l'apparence à appliquer au contrôle. (Hérité de Control.)
Propriété publique TemplateControl Obtient ou définit une référence au modèle qui contient ce contrôle. (Hérité de Control.)
Propriété publique TemplateSourceDirectory Obtient le répertoire virtuel du Page ou du UserControl qui contient le contrôle serveur en cours. (Hérité de Control.)
Propriété publique Triggers Obtient un objet UpdatePanelTriggerCollection qui contient des objets AsyncPostBackTrigger et PostBackTrigger enregistrés de manière déclarative pour le contrôle UpdatePanel.
Propriété publique UniqueID Obtient l'identificateur unique qualifié sur le plan hiérarchique du contrôle serveur. (Hérité de Control.)
Propriété publique UpdateMode Obtient ou définit une valeur qui indique quand un contenu de contrôle UpdatePanel est mis à jour.
Propriété protégée 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.)
Propriété protégée ViewStateIgnoresCase Obtient une valeur qui indique si l'objet StateBag respecte la casse. (Hérité de Control.)
Propriété publique ViewStateMode Obtient ou définit le mode d'état d'affichage de ce contrôle. (Hérité de Control.)
Propriété publique 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.)
Début
  Nom Description
Méthode protégée AddedControl Appelée après l'ajout d'un contrôle enfant à la collection Controls de l'objet Control. (Hérité de Control.)
Méthode protégée 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.)
Méthode publique 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.)
Méthode protégée 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.)
Méthode protégée ClearCachedClientID Infrastructure. Affecte à la valeur ClientID mise en cache la valeur null. (Hérité de Control.)
Méthode protégée ClearChildControlState Supprime les informations sur l'état du contrôle des contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode protégée 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.)
Méthode protégée ClearChildViewState Supprime les informations d'état d'affichage de tous les contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode protégée 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.)
Méthode protégée 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.)
Méthode protégée CreateContentTemplateContainer Crée un objet Control qui agit comme un conteneur pour contrôles enfants qui définissent le contenu du contrôle UpdatePanel.
Méthode protégée CreateControlCollection Retourne la collection de tous les contrôles contenus dans le contrôle UpdatePanel. (Substitue Control.CreateControlCollection().)
Méthode publique DataBind() Lie une source de données au contrôle serveur appelé et à tous ses contrôles enfants. (Hérité de Control.)
Méthode protégée 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.)
Méthode protégée DataBindChildren Lie une source de données aux contrôles enfants du contrôle serveur. (Hérité de Control.)
Méthode publique 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.)
Méthode protégée 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.)
Méthode protégée EnsureID Crée un identificateur pour les contrôles auxquels aucun identificateur n'est assigné. (Hérité de Control.)
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée 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.)
Méthode publique 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.)
Méthode protégée 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.)
Méthode publique Focus Affecte le focus d'entrée à un contrôle. (Hérité de Control.)
Méthode protégée GetDesignModeState Infrastructure. Obtient les données au moment du design pour un contrôle. (Hérité de Control.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetRouteUrl(Object) Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.)
Méthode publique GetRouteUrl(RouteValueDictionary) Obtient l'URL qui correspond à un jeu de paramètres d'itinéraire. (Hérité de Control.)
Méthode publique 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.)
Méthode publique 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.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique GetUniqueIDRelativeTo Retourne la partie préfixée de la propriété UniqueID du contrôle spécifié. (Hérité de Control.)
Méthode publique HasControls Détermine si le contrôle serveur contient des contrôles enfants. (Hérité de Control.)
Méthode protégée HasEvents Retourne une valeur indiquant si des événements sont inscrits pour le contrôle ou des contrôles enfants. (Hérité de Control.)
Méthode protégée Initialize Initialise la collection de déclencheurs de contrôles UpdatePanel si la restitution de page partielle est activée.
Méthode protégée IsLiteralContent Infrastructure. Détermine si le contrôle serveur ne détient qu'un contenu littéral. (Hérité de Control.)
Méthode protégée 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.)
Méthode protégée 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.)
Méthode protégée 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.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée 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.)
Méthode protégée OnDataBinding Déclenche l'événement DataBinding. (Hérité de Control.)
Méthode protégée OnInit Déclenche l'événement Init. (Substitue Control.OnInit(EventArgs).)
Méthode protégée 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).)
Méthode protégée OnPreRender Déclenche l'événement PreRender. (Substitue Control.OnPreRender(EventArgs).)
Méthode protégée OnUnload Déclenche l'événement de base Unload. (Substitue Control.OnUnload(EventArgs).)
Méthode protégée OpenFile Obtient un Stream utilisé pour lire un fichier. (Hérité de Control.)
Méthode protégée RaiseBubbleEvent Assigne les sources éventuelles de l'événement et ses informations au parent du contrôle. (Hérité de Control.)
Méthode protégée RemovedControl Appelée après la suppression d'un contrôle enfant dans la collection Controls de l'objet Control. (Hérité de Control.)
Méthode protégée Render Déclenche l'événement Render. (Substitue Control.Render(HtmlTextWriter).)
Méthode protégée RenderChildren Déclenche l'événement RenderChildren. (Substitue Control.RenderChildren(HtmlTextWriter).)
Méthode publique 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.)
Méthode protégée 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.)
Méthode protégée ResolveAdapter Obtient l'adaptateur de contrôles responsable du rendu du contrôle spécifié. (Hérité de Control.)
Méthode publique ResolveClientUrl Obtient une URL qui peut être utilisée par le navigateur. (Hérité de Control.)
Méthode publique ResolveUrl Convertit une URL en une URL que le client soit en mesure d'utiliser. (Hérité de Control.)
Méthode protégée 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.)
Méthode protégée 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.)
Méthode protégée SetDesignModeState Définit les données au moment du design pour un contrôle. (Hérité de Control.)
Méthode publique 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.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode protégée 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.)
Méthode publique Update Entraîne une mise à jour du contenu d'un contrôle UpdatePanel.
Début
  Nom Description
Événement public DataBinding Se produit lorsque le contrôle serveur se lie à une source de données. (Hérité de Control.)
Événement public 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.)
Événement public 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.)
Événement public Load Se produit lorsque le contrôle serveur est chargé dans l'objet Page. (Hérité de Control.)
Événement public PreRender Se produit après le chargement de l'objet Control mais avant le rendu. (Hérité de Control.)
Événement public Unload Se produit lorsque le contrôle serveur est déchargé de la mémoire. (Hérité de Control.)
Début
  Nom Description
Méthode d'extension publique 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.)
Méthode d'extension publique 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.)
Méthode d'extension publique FindMetaTable Retourne l'objet Metatable pour le contrôle de données conteneur. (Défini par DynamicDataExtensions.)
Début
  Nom Description
Implémentation d'interface explicite Méthode privée IAttributeAccessor.GetAttribute Retourne un attribut d'un contrôle Web à l'aide d'un nom spécifié.
Implémentation d'interface explicite Méthode privée IAttributeAccessor.SetAttribute Définit la valeur de l'attribut du contrôle spécifié.
Implémentation d'interface explicite Propriété privée IControlBuilderAccessor.ControlBuilder Pour obtenir une description de ce membre, consultez IControlBuilderAccessor.ControlBuilder. (Hérité de Control.)
Implémentation d'interface explicite Méthode privée IControlDesignerAccessor.GetDesignModeState Pour obtenir une description de ce membre, consultez IControlDesignerAccessor.GetDesignModeState. (Hérité de Control.)
Implémentation d'interface explicite Méthode privée IControlDesignerAccessor.SetDesignModeState Pour obtenir une description de ce membre, consultez IControlDesignerAccessor.SetDesignModeState. (Hérité de Control.)
Implémentation d'interface explicite Méthode privée IControlDesignerAccessor.SetOwnerControl Infrastructure. Pour obtenir une description de ce membre, consultez IControlDesignerAccessor.SetOwnerControl. (Hérité de Control.)
Implémentation d'interface explicite Propriété privée IControlDesignerAccessor.UserData Pour obtenir une description de ce membre, consultez IControlDesignerAccessor.UserData. (Hérité de Control.)
Implémentation d'interface explicite Propriété privée IDataBindingsAccessor.DataBindings Pour obtenir une description de ce membre, consultez IDataBindingsAccessor.DataBindings. (Hérité de Control.)
Implémentation d'interface explicite Propriété privée IDataBindingsAccessor.HasDataBindings Pour obtenir une description de ce membre, consultez IDataBindingsAccessor.HasDataBindings. (Hérité de Control.)
Implémentation d'interface explicite Propriété privée IExpressionsAccessor.Expressions Pour obtenir une description de ce membre, consultez IExpressionsAccessor.Expressions. (Hérité de Control.)
Implémentation d'interface explicite Propriété privée IExpressionsAccessor.HasExpressions Pour obtenir une description de ce membre, consultez IExpressionsAccessor.HasExpressions. (Hérité de Control.)
Implémentation d'interface explicite Méthode privée IParserAccessor.AddParsedSubObject Pour obtenir une description de ce membre, consultez IParserAccessor.AddParsedSubObject. (Hérité de Control.)
Début

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>


.NET Framework

Pris en charge dans : 4, 3.5

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.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ