Preimpostazione delle voci dell'elenco con CascadingDropDown (C#)

di Christian Wenz

Scarica il PDF

Il controllo CascadingDropDown in AJAX Control Toolkit estende un controllo DropDownList in modo che le modifiche apportate a un oggetto DropDownList carichino i valori associati in un altro DropDownList. Con un po' di codice è possibile che un elemento elenco venga pre-selezionato dopo il caricamento dinamico dei dati.

Panoramica

Il controllo CascadingDropDown in AJAX Control Toolkit estende un controllo DropDownList in modo che le modifiche apportate a un oggetto DropDownList carichino i valori associati in un altro DropDownList. Ad esempio, un elenco fornisce un elenco degli stati Uniti e l'elenco successivo viene quindi compilato con le principali città in tale stato. Con un po' di codice è possibile che un elemento elenco venga pre-selezionato dopo il caricamento dinamico dei dati.

Passaggi

Per attivare la funzionalità di ASP.NET AJAX e Control Toolkit, il ScriptManager controllo deve essere inserito in qualsiasi punto della pagina (ma all'interno dell'elemento <form> ):

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

È quindi necessario un controllo DropDownList:

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

Per questo elenco, viene aggiunto un extender CascadingDropDown, fornendo l'URL del servizio Web e le informazioni sul metodo:

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

L'estensione CascadingDropDown chiama quindi in modo asincrono un servizio Web con la firma del metodo seguente:

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

Il metodo restituisce una matrice di tipo CascadingDropDown. Il costruttore del tipo prevede prima il didascalia della voce di elenco e quindi il valore (attributo HTMLvalue). Se il terzo argomento è impostato su true, l'elemento list viene selezionato automaticamente nel browser.

<%@ 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();
 }
}

Il caricamento della pagina nel browser riempirà l'elenco a discesa con tre fornitori, il secondo viene pre-selezionato.

L'elenco viene compilato e selezionato automaticamente

L'elenco viene compilato e selezionato automaticamente (fare clic per visualizzare l'immagine a dimensione intera)