Share via


UpdatePanel, contrôle

Les contrôles UpdatePanel ASP.NET permettent de générer des applications Web riches en fonctionnalités et orientées vers le client. En utilisant des contrôles UpdatePanel , vous pouvez actualiser des parties sélectionnées sur la page au lieu d’actualiser la page entière par une publication. On parle alors de mise à jour de page partielle. Une page Web ASP.NET qui contient un contrôle ScriptManager et un ou plusieurs contrôles UpdatePanel peut participer automatiquement aux mises à jour de pages partielles, sans script client personnalisé.

Le contrôle UpdatePanel requiert des paramètres spécifiques dans un fichier web.config pour fonctionner correctement. Si vous essayez d’utiliser ce contrôle, et si votre site ne contient pas le fichier web.config requis, des erreurs apparaissent dans le mode Création de la page où le contrôle est censé s’afficher. En mode Création, si vous cliquez sur un contrôle qui se trouve dans cet état, Microsoft Expression Web vous donne la possibilité de créer un fichier web.config ou de mettre à jour votre fichier web.config existant.

Scénarios

Le contrôle UpdatePanel est un contrôle serveur qui vous aide à développer des pages Web ayant un comportement client complexe et qui paraissent ainsi plus interactives à l’utilisateur final. L’écriture de code pour exécuter la coordination nécessaire entre le serveur et le client afin de mettre à jour uniquement des portions spécifiées d’une page Web nécessite habituellement des connaissances approfondies d’ECMAScript (JavaScript). En utilisant le contrôle UpdatePanel , vous pouvez toutefois permettre à une page Web de participer aux mises à jour de page partielle sans écrire de script client. Si vous le souhaitez, vous pouvez ajouter un script client personnalisé pour améliorer l’expérience de l’utilisateur du client. Lorsque vous utilisez un contrôle UpdatePanel , le comportement de la page est indépendant du navigateur et peut potentiellement limiter le volume de données échangé entre le client et le serveur.

Background (arrière-plan)

Les contrôles UpdatePanel fonctionnent en spécifiant des zones d’une page qui peuvent être mises à jour sans actualiser la page entière. Ce processus est coordonné par le contrôle serveur ScriptManager et la classe cliente PageRequestManager . Lorsque des mises à jour de pages partielles sont activées, les contrôles effectuent des publications asynchrones sur le serveur. Une publication asynchrone se comporte comme une publication normale dans la mesure où la page serveur résultante exécute le cycle de vie complet de page et de contrôle. Toutefois, avec une publication asynchrone, les mises à jour de page se limitent aux zones de la page délimitées par les contrôles UpdatePanel et marquées pour être mises à jour. Le serveur envoie uniquement le balisage HTML des éléments affectés au navigateur.

Activation de mises à jour de pages partielles

Le contrôle UpdatePanel requiert un contrôle ScriptManager dans la page Web. Par défaut, les mises à jour de pages partielles sont activées car la valeur par défaut de la propriété EnablePartialRendering du contrôle ScriptManager est True.

Spécification du contenu du contrôle UpdatePanel

Pour ajouter du contenu à un contrôle UpdatePanel , placez le contenu dans le panneau en mode Création. Par exemple, vous pouvez faire glisser d’autres contrôles ASP.NET et HTML vers le panneau, puis placer le curseur dans le panneau et taper directement dans ce dernier. Lorsque vous ajoutez du contenu à un contrôle UpdatePanel en mode Création, les balises <ContentTemplate></ContentTemplate> requises sont automatiquement ajoutées autour du contenu. Si vous ajoutez du contenu à un contrôle UpdatePanel en mode Code au lieu du mode Création, vous devez ajouter manuellement les balises <ContentTemplate></ContentTemplate> si elles n’existent pas déjà ; sinon, le contenu ne sera pas affiché dans le contrôle UpdatePanel .

Lors du rendu initial d’une page qui contient un ou plusieurs contrôles UpdatePanel , tout le contenu des contrôles UpdatePanel est rendu et envoyé au navigateur. Lors des publications asynchrones suivantes, le contenu des contrôles UpdatePanel individuels peut être mis à jour. Les mises à jour dépendent des paramètres du panneau, de l’élément ayant déclenché la publication et du code spécifique à chaque panneau.

Spécification des déclencheurs UpdatePanel

Par défaut, tout contrôle de publication à l’intérieur d’un contrôle UpdatePanel provoque une publication asynchrone et actualise le contenu du panneau. Toutefois, vous pouvez également configurer d’autres contrôles sur la page pour actualiser un contrôle UpdatePanel . Pour ce faire, définissez un déclencheur pour le contrôle UpdatePanel . Un déclencheur est une liaison qui spécifie le contrôle de publication et l’événement qui provoquent la mise à jour d’un panneau. Lorsque l’événement spécifié du contrôle déclencheur est déclenché (par exemple, l’événement Click d’un bouton), le panneau de mise à jour est actualisé. Vous pouvez créer des déclencheurs pour un contrôle UpdatePanel à l’aide de la boîte de dialogue Éditeur de collections UpdatePanelTrigger, disponible à partir de la propriété Triggers dans le panneau Propriétés de la balise.

L’événement de contrôle d’un déclencheur est facultatif. Si vous ne spécifiez pas d’événement, l’événement par défaut du contrôle devient le déclencheur. Par exemple, pour le contrôle Button, l’événement par défaut est l’événement Click.

Méthode d’actualisation des contrôles UpdatePanel

La liste suivante décrit les paramètres de propriété du contrôle UpdatePanel pour déterminer quand le contenu d’un panneau doit être mis à jour lors du rendu d’une page partielle :

  • Si la propriété UpdateMode prend la valeur Always, le contenu des contrôles UpdatePanel est mis à jour à chaque publication provenant d’une partie de la page, quelle qu’elle soit. 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 prend la valeur Conditional, le contenu du contrôle UpdatePanel est mis à jour lorsqu’une des conditions suivantes est vraie :

    • Lorsque la publication est déclenchée par un déclencheur pour ce contrôle UpdatePanel .

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

    • Lorsque le contrôle UpdatePanel est imbriqué dans un autre contrôle UpdatePanel et que le panneau parent est mis à jour.

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

Si la propriété ChildrenAsTriggers prend la valeur False et la propriété UpdateMode la valeur Always, une exception est levée. La propriété ChildrenAsTriggers ne doit être utilisée que si la propriété UpdateMode prend la valeur Conditional.

Utilisation de contrôles UpdatePanel imbriqués

Les contrôles UpdatePanel peuvent être imbriqués. Si le panneau parent est actualisé, tous les panneaux imbriqués sont également actualisés. Si un panneau enfant est actualisé, seul le panneau enfant est mis à jour.

Contrôles incompatibles avec les contrôles UpdatePanel

Les contrôles ASP.NET suivants ne sont pas compatibles avec les mises à jour de page partielle et par conséquent, ne sont pas conçus pour fonctionner dans un contrôle UpdatePanel :

  • Contrôle Treeview dans plusieurs conditions : lorsque des rappels qui ne font pas partie d’une publication asynchrone sont activés ; lorsque vous définissez des styles directement en tant que propriétés de contrôle au lieu d’affecter des styles implicitement au contrôle en utilisant une référence aux styles CSS ; lorsque la propriété EnableClientScript prend la valeur False (la valeur par défaut est True) ; ou encore si vous modifiez la valeur de la propriété EnableClientScript entre les publications asynchrones.

  • Contrôle Menu lorsque vous définissez des styles directement en tant que propriétés de contrôle au lieu d’affecter des styles implicitement au contrôle en utilisant une référence aux styles CSS.

  • Contrôles FileUpload et HtmlInputFile lorsqu’ils sont utilisés pour télécharger des fichiers en tant que partie intégrante d’une publication asynchrone.

  • Contrôles GridView et DetailsView lorsque leur propriété EnableSortingAndPagingCallbacks prend la valeur True. La valeur par défaut est False.

  • Les contrôles Login , PasswordRecovery , ChangePassword et CreateUserWizard dont le contenu n’a pas été converti pour les modèles modifiables.

  • Le contrôle Substitution .

Pour utiliser un contrôle FileUpload ou HtmlInputFile dans un contrôle UpdatePanel , définissez le contrôle de publication qui envoie le fichier en tant que contrôle PostBackTrigger pour le panneau. Les contrôles FileUpload et HtmlInputFile peuvent être utilisés uniquement dans des scénarios de publication.

Tous les autres contrôles fonctionnent à l’intérieur des contrôles UpdatePanel .

Utilisation des contrôles WebPart à l’intérieur des contrôles UpdatePanel

Les contrôles WebPart ASP.NET sont un jeu intégré de contrôles de création de sites Web qui permettent aux utilisateurs finaux de modifier directement le contenu, l’apparence et le comportement de pages Web depuis un navigateur. Vous pouvez utiliser des contrôles WebPart à l’intérieur des contrôles UpdatePanel avec les restrictions suivantes :

  • Chaque contrôle WebPartZone doit se trouver à l’intérieur du même contrôle UpdatePanel . Par exemple, deux contrôles UpdatePanel ne peuvent pas se trouver sur la page, chacun avec son propre contrôle WebPartZone .

  • Le contrôle WebPartManager gère toutes les informations d’état client pour les contrôles WebPart. Il doit se trouver dans le contrôle UpdatePanel le plus éloigné sur une page.

  • Vous ne pouvez pas importer ou exporter des contrôles WebPart à l’aide une publication asynchrone. (Effectuer cette tâche nécessite un contrôle FileUpload , qui ne peut pas être utilisé avec des publications asynchrones). Par défaut, l’importation des contrôles WebPart effectue une publication complète.

  • Vous ne pouvez pas ajouter ou modifier les styles de contrôles WebPart au cours des publications asynchrones.

Pour plus d’informations sur le contrôle UpdatePanel , voir Vue d’ensemble du contrôle UpdatePanel Cc295545.xtlink_newWindow(fr-fr,Expression.40).png dans MSDN Library.

Pour obtenir une description de toutes les propriétés du contrôle UpdatePanel , voir Propriétés UpdatePanel Cc295545.xtlink_newWindow(fr-fr,Expression.40).png dans MSDN Library.

Voir aussi

Tâches

Didacticiel : actualiser un contrôle UpdatePanel selon un intervalle de minuterie

Concepts

Didacticiel : comment créer une page avec deux zones pouvant être mises à jour de manière indépendante
ScriptManager, contrôle
Vue d’ensemble du rendu de page partielle