共用方式為


使用 CascadingDropDown 預設清單項目 (VB)

作者 :擷取 Wenz

下載 PDF

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

在瀏覽器中載入頁面將會以三個廠商填滿下拉式清單,第二個廠商會預先選取。

清單會自動填入並預先選取

清單已填滿並預先選取 (按一下即可檢視全大小影像)