Traduction

Cet article est la traduction la plus fidèle possible de l'article original: Presetting List Entries with CascadingDropDown

Vue générale

Le contrôle CascadingDropDown de l'AJAX Control Toolkit étend un contrôle DropDownList de façon à ce que des changements dans une DropDownList chargent des données associées dans une autre DropDownList (Par exemple, une liste fournit la liste des états US et la liste suivante est remplie avec les principales villes de cet état). Avec un minimum de code, il est possible de présélectionner un élément une fois les données chargées.

Etapes

Dans le but d'activer les fonctionnalités d'ASP.NET AJAX et du Control Toolkit, le contrôle ScriptManager doit être ajouté n'importe où dans la page (mais à l'intérieur de l'élément <form>):

 
Sélectionnez

<asp:ScriptManager ID="asm" runat="server" /> 

Ensuite, un contrôle DropDownList est nécessaire:

 
Sélectionnez

<div>      
	Vendor: <asp:DropDownList ID="VendorsList" runat="server"/> 
</div>	

Pour cette liste, un extendeur CascadingDropDown est ajouté, fournissant l'URL d'un web service et le nom d'une web méthode:

 
Sélectionnez

<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"      
	ServicePath="CascadingDropdown2.cs.asmx" 
	ServiceMethod="GetVendors"      
	TargetControlID="VendorsList" Category="Vendor" />

L'extendeur CascadingDropDown fait un appel asynchrone à une web méthode dont la signature est:

 
Sélectionnez

public CascadingDropDownNameValue[] MethodNameHere(string knownCategoryValues, string category)

La méthode retourne un tableau de type CascadingDropDown. Le premier paramètre du constructeur de CascadingDropDownList est le texte de l'entrée de la liste, le second est sa valeur, (attribut valeur de l'élément HTML <option value="VALUE">NAME<option>). Si le troisième élément est défini à true, l'élément de la liste est automatiquement sélectionné dans le navigateur.

 
Sélectionnez

<%@ WebService Language="C#" Class="CascadingDropdown2" %> 
using System.Web.Script.Services; 
using AjaxControlToolkit; 
using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Collections.Generic; 

[ScriptService] 
public class CascadingDropdown2 : System.Web.Services.WebService 
{      
	[WebMethod]
	public CascadingDropDownNameValue[] GetVendors(string knownCategoryValues, string category)      
	{           
		List<CascadingDropDownNameValue> l = new List<CascadingDropDownNameValue>();           
		l.Add(new CascadingDropDownNameValue("International", "1"));           
		l.Add(new CascadingDropDownNameValue("Electronic Bike Repairs & Supplies", "2", true));           
		l.Add(new CascadingDropDownNameValue("Premier Sport, Inc.", "3"));           
		return l.ToArray();
      } 
}

Charger la page dans le navigateur remplira la liste déroulante avec trois entrées, la seconde étant présélectionnée.

Image non disponible
La liste est remplie et automatiquement présélectionnée