Remplissage dynamique d’un contrôle (VB)

par Christian Wenz

Télécharger le PDF

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") :

  • TargetControlID où placer le résultat de l’appel de service web
  • ServicePath chemin d’accès au service web (omettre si vous souhaitez utiliser une méthode de page)
  • ServiceMethod nom de la méthode web ou de la méthode de page
  • ContextKey informations de contexte à envoyer au service web
  • PopulateTriggerControlID élément qui déclenche l’appel de service web
  • ClearContentsDuringUpdate indique 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

Un clic sur le bouton récupère la date du serveur (cliquez pour afficher l’image de taille complète)