Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il controllo CascadingDropDown in AJAX Control Toolkit estende un controllo DropDownList in modo che le modifiche apportate a un controllo DropDownList carichino i valori associati in un altro DropDownList. Ad esempio, un elenco fornisce un elenco di stati USA e l'elenco successivo viene quindi compilato con le principali città in tale stato. La prima sfida da risolvere consiste nel riempire effettivamente un elenco a discesa usando questo controllo.
Informazioni generali
Il controllo CascadingDropDown in AJAX Control Toolkit estende un controllo DropDownList in modo che le modifiche apportate a un controllo DropDownList carichino i valori associati in un altro DropDownList. Ad esempio, un elenco fornisce un elenco di stati USA e l'elenco successivo viene quindi compilato con le principali città in tale stato. La prima sfida da risolvere consiste nel riempire effettivamente un elenco a discesa usando questo controllo.
Gradi
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. Invierà una richiesta asincrona a un servizio Web che restituirà quindi un elenco di voci da visualizzare nell'elenco. Per il corretto funzionamento, è necessario impostare gli attributi CascadingDropDown seguenti:
-
ServicePath: URL di un servizio Web che recapita le voci dell'elenco -
ServiceMethod: metodo Web che recapita le voci dell'elenco -
TargetControlID: ID dell'elenco a discesa -
Category: informazioni sulle categorie inviate al metodo Web quando viene chiamato -
PromptText: testo visualizzato quando si caricano in modo asincrono i dati dell'elenco dal server
Ecco il markup per l'elemento CascadingDropDown . L'unica differenza tra C# e VB è il nome del servizio Web associato:
<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown0.vb.asmx" ServiceMethod="GetVendors"
TargetControlID="VendorsList" Category="Vendor" />
Il codice JavaScript proveniente dall'extender CascadingDropDown chiama un metodo del servizio Web con la firma seguente:
Public Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
L'aspetto importante è quindi che il metodo deve restituire una matrice di tipo CascadingDropDownNameValue (definita dal ASP.NET AJAX Control Toolkit).
CascadingDropDownNameValue Nel costruttore, prima il testo della voce dell'elenco e quindi il relativo valore deve essere fornito, esattamente come <option value="VALUE">NAME</option> avviene in HTML. Ecco alcuni dati di esempio:
<%@ WebService Language="VB" Class="CascadingDropDown0" %>
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 CascadingDropDown0
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"))
l.Add(New CascadingDropDownNameValue("Premier Sport, Inc.", "3"))
Return l.ToArray()
End Function
End Class
Il caricamento della pagina nel browser attiverà la compilazione dell'elenco con tre fornitori.
L'elenco viene compilato automaticamente (fare clic per visualizzare l'immagine a dimensione intera)