Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
par Christian Wenz
Le contrôle DynamicPopulate dans le ASP.NET ajax Control Toolkit appelle un service web (ou une méthode de page) et remplit la valeur résultante dans un contrôle cible sur la page, sans actualisation de page.
Vue d’ensemble
Le DynamicPopulate contrôle dans le ASP.NET AJAX Control Toolkit appelle un service web (ou une méthode de page) et remplit la valeur obtenue dans un contrôle cible sur la page, sans actualisation de page. Ce tutoriel montre comment configurer cela.
É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 nécessite 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 type string, appelé contextKey, car le DynamicPopulate contrôle envoie un élément d’informations de contexte à 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é en tant que 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 active pour charger l’ASP.NET bibliothèque AJAX et pour que le Kit de ressources de contrôle fonctionne :
<asp:ScriptManager ID="asm" runat="server" />
Ensuite, ajoutez un contrôle d’étiquette (pour instance en utilisant le contrôle HTML du même nom ou le <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ôle pour relier les choses vers le haut. Les attributs suivants seront définis (à l’exception des attributs évidents, ID et runat="server") :
-
TargetControlIDoù placer le résultat de l’appel de service web -
ServicePathchemin d’accès au service web (omettez si vous souhaitez utiliser une méthode 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 -
ClearContentsDuringUpdates’il faut vider l’élément cible pendant l’appel de service web
Comme vous pouvez le voir, le contrôle nécessite quelques informations, mais la mise en place de tout est assez 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 et 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 à partir du serveur (Cliquez pour afficher l’image en taille réelle)