Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
par Christian Wenz
Le contrôle DynamicPopulate dans le ASP.NET AJAX Control Toolkit appelle un service web (ou méthode de page) et remplit la valeur résultante dans un contrôle cible sur la page, sans actualisation de page.
Aperçu
Le DynamicPopulate contrôle dans le ASP.NET AJAX Control Toolkit appelle un service web (ou méthode de page) et remplit la valeur résultante dans un contrôle cible sur la page, sans actualisation de page. Ce tutoriel montre comment configurer ce paramètre.
Étapes
Tout d’abord, vous avez besoin d’un service web ASP.NET qui implémente la méthode à appeler par DynamicPopulate. La classe de service web requiert l’attribut ScriptService qui est défini dans Microsoft.Web.Script.Services; sinon, ASP.NET AJAX ne peut pas créer le proxy JavaScript côté client pour le service web qui à son tour est requis par DynamicPopulate.
La méthode web doit s’attendre à un argument de chaîne de type, appelé contextKey, car le DynamicPopulate contrôle envoie un élément d’informations de contexte avec chaque appel de service web. Le service web suivant retourne la date actuelle dans un format représenté par l’argument contextKey :
<%@ WebService Language="VB" Class="DynamicPopulate" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
<ScriptService()> _
Public Class DynamicPopulate
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function getDate(ByVal contextKey As String) As String
Dim myDate As String = ""
Select Case contextKey
Case "format1"
myDate = String.Format("{0:MM}-{0:dd}-{0:yyyy}", DateTime.Now)
Case "format2"
myDate = String.Format("{0:dd}.{0:MM}.{0:yyyy}", DateTime.Now)
Case "format3"
myDate = String.Format("{0:yyyy}/{0:MM}/{0:dd}", DateTime.Now)
End Select
Return myDate
End Function
End Class
Le service web est ensuite enregistré sous la forme DynamicPopulate.vb.asmx. Vous pouvez également implémenter la getDate() méthode en tant que méthode de page dans la page ASP.NET réelle avec le DynamicPopulate contrôle.
À l’étape suivante, créez un fichier ASP.NET. Comme toujours, la première étape consiste à inclure le ScriptManager dans la page actuelle pour charger la bibliothèque AJAX ASP.NET et faire fonctionner le Control Toolkit.
<asp:ScriptManager ID="asm" runat="server" />
Ensuite, ajoutez un contrôle d’étiquette (par exemple à l’aide du contrôle HTML du même nom ou du <asp:Label contrôle web> ) qui affichera ultérieurement le résultat de l’appel de service web.
<label id="myDate" runat="server" />
Un bouton HTML (en tant que contrôle HTML, car nous n’avons pas besoin d’une publication sur le serveur) sera ensuite utilisé pour déclencher la population dynamique :
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Enfin, nous avons besoin du DynamicPopulateExtender contrôleur pour connecter les éléments. Les attributs suivants seront définis (à part les attributs évidents, ID et runat="server") :
-
TargetControlIDoù placer le résultat de l’appel de service web -
ServicePathchemin d’accès au service web (omettre si vous souhaitez utiliser une méthode de page) -
ServiceMethodnom de la méthode web ou de la méthode de page -
ContextKeyinformations de contexte à envoyer au service web -
PopulateTriggerControlIDélément qui déclenche l’appel de service web -
ClearContentsDuringUpdateindique s’il faut vider l’élément cible pendant l’appel de service web
Comme vous pouvez le voir, le contrôle nécessite des informations, mais mettre tout en place est tout à fait simple. Voici le balisage du DynamicPopulateExtender contrôle dans le scénario actuel :
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
Exécutez la page ASP.NET dans le navigateur, puis cliquez sur le bouton ; vous recevrez la date actuelle au format mois-jour-année.
Un clic sur le bouton récupère la date du serveur (cliquez pour afficher l’image de taille complète)