Condividi tramite


Preimpostazione delle voci dell'elenco con CascadingDropDown (VB)

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.vb.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 Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()

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="VB" Class="CascadingDropDown2" %>
Imports System.Web.Script.Services
Imports AjaxControlToolkit
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Collections.Generic
<ScriptService()> _
Public Class CascadingDropDown2
 Inherits System.Web.Services.WebService
 <WebMethod()> _
 Public Function GetVendors(ByVal knownCategoryValues As String, ByVal category As
 String) As CascadingDropDownNameValue()
 Dim l As New List(Of 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()
 End Function
End Class

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)