Wstępne ustawianie pozycji listy przy użyciu kontrolki CascadingDropDown (VB)
Autor: Christian Wenz
Kontrolka CascadingDropDown w zestawie narzędzi AJAX Control Toolkit rozszerza kontrolkę DropDownList, aby zmiany w jednej kontrolce DropDownList ładowały skojarzone wartości w innej kontrolce DropDownList. Przy odrobinie kodu możliwe jest, że element listy jest wstępnie wybierany po dynamicznym załadowaniu danych.
Omówienie
Kontrolka CascadingDropDown w zestawie narzędzi AJAX Control Toolkit rozszerza kontrolkę DropDownList, aby zmiany w jednej kontrolce DropDownList ładowały skojarzone wartości w innej kontrolce DropDownList. (Na przykład jedna lista zawiera listę stanów USA, a następna lista jest następnie wypełniona dużymi miastami w tym stanie). Przy odrobinie kodu możliwe jest, że element listy jest wstępnie wybierany po dynamicznym załadowaniu danych.
Kroki
Aby można było aktywować funkcje ASP.NET AJAX i Control Toolkit, kontrolka ScriptManager
musi zostać umieszczona w dowolnym miejscu na stronie (ale w elemecie <form>
):
<asp:ScriptManager ID="asm" runat="server" />
Następnie wymagana jest kontrolka DropDownList:
<div>
Vendor: <asp:DropDownList ID="VendorsList" runat="server"/>
</div>
Dla tej listy jest dodawany rozszerzenie CascadingDropDown, dostarczając adres URL usługi internetowej i informacje o metodzie:
<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown2.vb.asmx" ServiceMethod="GetVendors"
TargetControlID="VendorsList" Category="Vendor" />
Rozszerzenie CascadingDropDown następnie asynchronicznie wywołuje usługę internetową z następującym podpisem metody:
Public Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
Metoda zwraca tablicę typu CascadingDropDown. Konstruktor typu oczekuje najpierw podpis wpisu listy, a następnie wartość (atrybut HTMLvalue
). Jeśli trzeci argument ma wartość true, element listy zostanie automatycznie wybrany w przeglądarce.
<%@ 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
Załadowanie strony w przeglądarce spowoduje wypełnienie listy rozwijanej trzema dostawcami, a drugi jest wstępnie wybrany.
Lista jest wypełniana i wybierana automatycznie (kliknij, aby wyświetlić obraz o pełnym rozmiarze)