實際開發經常要用到級聯下拉框,如省份、城市、地區,或三級分類等都要用到。開發起來總是很麻煩,現在有了asp.net ajax tooolkit的CascadingDropDown控件,情況變的好起來了,下面就來看看是怎樣實現的。
.aspx頁面中的關鍵代碼:
三個DropDownList,形成三級聯動。
注意最後一個的設置,自動回傳,其中的事件是獲取結果並顯示在UpdatePanel中的。
三個CascadingDropDown控件,分別關連上面的三個DropDownList
可能是出於演示的目的,第三個dropdownlist使用了頁面方法。
數據源使用了sampleWebSite中的xml文件。
Category="Make"中的Make是製造廠商,Model是汽車的類型,Color是汽車的顏色。其它的各個屬性的意義:
TargetControlID 不用說了吧;
Category :是各級分類名,如省份,在這裏就是製造廠商Make;
PromptText:在初始化時的提示文本;
LoadingText:加載時的提示文本;
ServicePath:web Service文件,全稱;
ServiceMethod:web service中的獲取數據的方法;
ParentControlID :上一級的dropdownlist的ID。
還有其它的屬性,讀者自己只好去查toolkit的文檔了。
一個UpdatePanel用來顯示您選擇的結果。
還有一樣,千萬不要忘了,要不總是出現那個煩人的黃色的頁面。
在<%@ Page 中設置EnableEventValidation ="false" 。
aspx.cs後置代碼中的代碼
很簡單,只是用來獲取結果並顯示在頁面上。中間有個頁面方法,在第二個ddl上使用了。
下面來看看關鍵的獲取數據的WEB服務
中間已經有了許多註釋。下面再來增加點:
QuerySimpleCascadingDropDownDocument(
Document ,Hierarchy ,knownCategoryValuesDictionary ,category ,InputValidationRegex )
* 參數:
* Document:xml文檔,數據源。
* Hierarchy:xml文檔的層次結構。
* knownCategoryValuesDictionary:就是已經選中項的字符串形式的值。
* category:下一個dropdownlist的分類名。
* InputValidationRegex:是用來驗證knownCategoryValuesDictionary ,category兩個參數的合法性的。
* 返回值中的CascadingDropDownNameValue 是CascadingDropDown下的一個類
提示:不要忘了在類上方加上這個--[System.Web.Script.Services.ScriptService]
這樣,一個使用xml作數據源的級聯下拉框就完成了。希望能對你的開發提供一點幫助,本人也正在學習中,如果有什麼新的思路,請評論裏留言討論。下一篇將介紹如果使用我們最常用的數據庫做數據源來實現級聯下拉框。