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>):
<asp:
ScriptManager ID
=
"asm"
runat
=
"server"
/>
Ensuite, un contrôle DropDownList est nécessaire:
<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:
<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:
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.
<%
@ 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.