使用 CascadingDropDown 預設清單項目 (VB)
作者 :擷取 Wenz
AJAX 控制項工具組中的 CascadingDropDown 控制項會擴充 DropDownList 控制項,讓一個 DropDownList 中的變更在另一個 DropDownList 中載入相關聯的值。 只要有一些程式碼,就可以在動態載入資料之後預先選取清單專案。
概觀
AJAX 控制項工具組中的 CascadingDropDown 控制項會擴充 DropDownList 控制項,讓一個 DropDownList 中的變更在另一個 DropDownList 中載入相關聯的值。 (例如,有一個清單提供美國州/地區的清單,而下一個清單接著會填入該州的主要城市。) 一些程式碼可能會預先選取清單元素,一旦資料動態載入。
步驟
若要啟用 ASP.NET AJAX 和 Control Toolkit 的功能,控制項 ScriptManager
必須放在頁面上 (,但在 <form>
元素內) :
<asp:ScriptManager ID="asm" runat="server" />
然後,需要 DropDownList 控制項:
<div>
Vendor: <asp:DropDownList ID="VendorsList" runat="server"/>
</div>
在此清單中,會新增 CascadingDropDown 擴充器,並提供 Web 服務 URL 和方法資訊:
<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown2.vb.asmx" ServiceMethod="GetVendors"
TargetControlID="VendorsList" Category="Vendor" />
CascadingDropDown 擴充器接著會以下列方法簽章非同步呼叫 Web 服務:
Public Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
方法會傳回 CascadingDropDown 類型的陣列。 類型的建構函式會先預期清單專案的標題,然後 (HTML value
屬性的值) 。 如果第三個引數設定為 true,則會在瀏覽器中自動選取清單專案。
<%@ 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
在瀏覽器中載入頁面將會以三個廠商填滿下拉式清單,第二個廠商會預先選取。
清單已填滿並預先選取 (按一下即可檢視全大小影像)