亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET Ajax級聯DropDownList實現代碼

2024-07-10 13:21:20
字體:
來源:轉載
供稿:網友

ASP.NET Ajax級聯DropDownList實現代碼


了解級聯DDL
那么考慮以下幾種常見情景:
· 用戶注冊時需要選擇國家、省、市、地區等。
· 用戶購買產品時選擇產品類別、產品名稱、產品型號。
以上的例子有一些共同特點:
· 上一級(如?。┻x擇后下一級(如市)才可以選擇。
· 下一級的內容由上一級的內容決定。
像這樣的一組DropDownList就是級聯DDL.常見的解決方法是將帶有層次的數據寫入XML,然后設置DropDownList的AutoPostBack屬性為"True"開啟自動回調,最后處理SelectedIndexChanged事件。這樣不僅十分麻煩,過多的頁面刷新會給用戶帶來反感。那么如何實現無刷新的級聯DropDownList呢?
開始
一、 創建XML數據文件
比如,我想做用戶注冊時的省、市的級聯DDL, 那么首先建立以下XML文件。

復制代碼 代碼如下:


<?xmlversion="1.0"encoding="utf-8"?>
<CityServiceSource>
<areaname="中國">
<provinceID="1"provinceID="110000"name="北京市">
<cityCityID="110100"name="市轄區">
<PieceareaPieceareaID="110101"name="東城區" />
<PieceareaPieceareaID="110102"name="西城區" />
<PieceareaPieceareaID="110103"name="崇文區" />
<PieceareaPieceareaID="110104"name="宣武區" />
<PieceareaPieceareaID="110105"name="朝陽區" />
<PieceareaPieceareaID="110106"name="豐臺區" />
<PieceareaPieceareaID="110107"name="石景山區" />
<PieceareaPieceareaID="110108"name="海淀區" />
<PieceareaPieceareaID="110109"name="門頭溝區" />
<PieceareaPieceareaID="110111"name="房山區" />
<PieceareaPieceareaID="110112"name="通州區" />
<PieceareaPieceareaID="110113"name="順義區" />
<PieceareaPieceareaID="110114"name="昌平區" />
<PieceareaPieceareaID="110115"name="大興區" />
<PieceareaPieceareaID="110116"name="懷柔區" />
<PieceareaPieceareaID="110117"name="平谷區" />
</city>
<cityCityID="110200"name="縣">
<PieceareaPieceareaID="110228"name="密云縣" />
<PieceareaPieceareaID="110229"name="延慶縣" />
</city>
</province>
</area>
<areaname="英國">
</area>
<areaname="美國">
</area>
<areaname="日本">
</area>
</CityServiceSource>


二、 創建web service
創建web service(如CityService.asmx)

復制代碼 代碼如下:


[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
publicclassCityService : System.Web.Services.WebService
{
privatestaticXmlDocument _document; // 用來讀取XML數據
privatestaticobject _lock = newobject();// 多線程并發處理
publicstaticXmlDocument Document
{
get
{
lock (_lock)
{
if (_document == null)
{
_document = newXmlDocument();
_document.Load(HttpContext.Current.Server.MapPath("~/App_Data/CityServiceSource.xml"));
}
}
return _document;
}
}
publicstaticstring[] Hierarchy
{
get
{
returnnewstring[] { "area", "province"};// XML數據的層次
}
}
[WebMethod] //一會兒控件會自動調用的web method.這個函數不根據具體情況改變。
public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category)
{
StringDictionary knownCategoryValuesDictionary = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
return AjaxControlToolkit.CascadingDropDown.QuerySimpleCascadingDropDownDocument(Document, Hierarchy, knownCategoryValuesDictionary, category);
}
}


三、創建DLL控件
如果沒有安裝Ajax Control Toolkit去下載并安裝()。
創建三個標準的DropDownList(默認命名為DropDownList1、DropDownList2、DropDownList3).
然后在Ajax Control Toolkit中拖拽出三個CascadingDropDown控件,注意一個Extender只能對于一個標準控件。 

復制代碼 代碼如下:


<ajaxToolkit:CascadingDropDownID="CascadingDropDown1"runat="server"
ServiceMethod="GetDropDownContents"
ServicePath="~/webservices/cityservice.asmx"TargetControlID="DropDownList1"
Category="area"LoadingText="正在讀取..."PromptText="請選擇國家">
</ajaxToolkit:CascadingDropDown>
<ajaxToolkit:CascadingDropDownID="CascadingDropDown2"runat="server"
ParentControlID="DropDownList1"ServiceMethod="GetDropDownContentsPageMethod"
TargetControlID="DropDownList2"Category="province"LoadingText="正在讀取..."
PromptText="請選擇省">
</ajaxToolkit:CascadingDropDown>
<ajaxToolkit:CascadingDropDownID="CascadingDropDown3"runat="server"
ParentControlID="DropDownList2"ServiceMethod="GetDropDownContents"
ServicePath="~/webservices/cityservice.asmx"TargetControlID="DropDownList3"
Category="city"LoadingText="正在讀取..."PromptText="請選擇城市">
</ajaxToolkit:CascadingDropDown>
<asp:UpdatePanelID="UpdatePanel1"runat="server"UpdateMode="Conditional"RenderMode="inline">
<Triggers>
<asp:AsyncPostBackTriggerControlID="DropDownList3"EventName="SelectedIndexChanged"/>
</Triggers>
</asp:UpdatePanel>


在”.cs”文件中創建web method.
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
publicstaticCascadingDropDownNameValue[] GetDropDownContentsPageMethod(string knownCategoryValues, string category)
{
returnnewCityService().GetDropDownContents(knownCategoryValues, category);
}
下面分別對CascadingDropDown的各個屬性進行說明。
ServiceMethod="GetDropDownContents" 調用的web method
ServicePath="~/webservices/cityservice.asmx" web service地址
TargetControlID="DropDownList1" 與其綁定的DropDownList控件的ID
Category="area" 該級聯DDL的層次
LoadingText="正在讀取..." 加載時顯示的文字
PromptText="請選擇國家"> 未選擇時顯示的文字
可以說Ajax在UE(User Experience)帶來了革命性的變化。異步的刷新模式大大改進了傳統“一步一刷新”的尷尬局面。由于本人修為尚淺,如有錯誤歡迎批評指證。
by Kim
2008/12/11
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最猛性xxxx| 日韩av免费在线看| 中文字幕国产亚洲2019| 97久久国产精品| 亚洲www在线观看| 中文字幕欧美专区| 国产精品日韩在线一区| 成人福利免费观看| 久久人人爽人人| 岛国av一区二区| 国产精品91久久| 91精品国产成人www| 国产精品视频1区| 亚洲三级 欧美三级| 欧美二区在线播放| 91热福利电影| 亚洲精品电影网站| 国产精品美女网站| 国产精品人人做人人爽| 91久久夜色精品国产网站| 欧美激情一区二区三级高清视频| 亚洲国产黄色片| 国产亚洲一区二区在线| 欧美极品第一页| 国产精品偷伦免费视频观看的| 亚洲一区二区三区毛片| 亚洲精品福利在线观看| 韩国国内大量揄拍精品视频| 91精品国产高清久久久久久| 国产成人精品午夜| 国产精品久久av| 国产欧美日韩最新| 精品香蕉在线观看视频一| 国产亚洲精品久久久| 国产日韩欧美影视| 国产成人激情视频| 亚洲国产精品99久久| 亚洲美女又黄又爽在线观看| 91精品国产电影| 精品亚洲一区二区三区| 91九色国产视频| 成人有码视频在线播放| 欧洲成人性视频| 久久久av亚洲男天堂| 一本色道久久88综合日韩精品| 91精品国产色综合久久不卡98口| 亚洲国产高清高潮精品美女| 久久精品免费电影| 国产视频精品va久久久久久| 国产成人鲁鲁免费视频a| 亚洲欧美激情另类校园| 日本欧美中文字幕| 国产欧美精品在线播放| 色噜噜久久综合伊人一本| 亚洲精品资源在线| 亚洲欧美激情在线视频| 国产欧美一区二区三区在线看| 7777kkkk成人观看| 亚洲欧美中文字幕| 久久这里只有精品视频首页| 91在线色戒在线| 日本中文字幕成人| 日韩毛片在线看| 成人性生交大片免费观看嘿嘿视频| 国内自拍欧美激情| 成人美女av在线直播| 国产精品视频一区二区高潮| 国产亚洲欧美日韩美女| 久久天堂av综合合色| 日韩中文字幕免费视频| 欧美成人剧情片在线观看| 欧美黄色免费网站| 国产日韩欧美另类| 国产成人精品久久亚洲高清不卡| 欧美国产日韩中文字幕在线| 国产丝袜视频一区| 欧美成人在线影院| 欧美日本高清视频| 亚洲国产精品资源| 久久国产天堂福利天堂| 日韩视频永久免费观看| 国产精品88a∨| 亚洲免费影视第一页| 欧美放荡办公室videos4k| 有码中文亚洲精品| 久久九九热免费视频| 日韩av在线免费观看一区| 精品久久国产精品| 精品久久香蕉国产线看观看gif| 亚洲成人激情图| 77777亚洲午夜久久多人| 久久久精品亚洲| 国产精品精品国产| 在线午夜精品自拍| 亚洲精品之草原avav久久| 国产亚洲福利一区| 亚洲精品不卡在线| 精品福利在线视频| 国内精品模特av私拍在线观看| 91精品国产高清久久久久久91| 日韩av电影在线播放| 国语自产精品视频在线看一大j8| www.日韩系列| 国产91成人video| 国产精品一区二区性色av| 亚洲黄色片网站| 国产精品久久久久久亚洲影视| 亚州成人av在线| 国产精品电影在线观看| 日韩精品视频免费| 亚洲激情电影中文字幕| 欧美激情国产高清| 久久久久久久国产精品| 欧美片一区二区三区| 欧美肥老太性生活视频| 欧美激情一区二区三区成人| 欧美www在线| 日韩精品在线观看一区二区| 91亚洲国产成人久久精品网站| 久久99精品久久久久久琪琪| 久久久久久久久久久成人| 成人日韩av在线| 欧美黑人视频一区| 亚洲人永久免费| 久久视频免费在线播放| 久久久久日韩精品久久久男男| 国产亚洲欧美aaaa| 欧美电影免费在线观看| 91精品国产91久久| 午夜精品一区二区三区视频免费看| 日韩经典一区二区三区| 日本一区二三区好的精华液| 欧美精品情趣视频| 欧美乱大交做爰xxxⅹ性3| 国产精品成人av在线| 国产丝袜一区视频在线观看| 亚洲欧美一区二区精品久久久| 亚洲欧美另类国产| 亚洲欧美国产va在线影院| 欧美激情精品久久久久久久变态| 欧美日韩中文在线观看| 在线国产精品视频| 日本高清视频精品| 久久久久久欧美| 在线播放日韩专区| 久久影视电视剧免费网站| 欧美激情视频在线| 热久久免费视频精品| 插插插亚洲综合网| 国产剧情久久久久久| 国产成人久久久精品一区| 亚洲视频日韩精品| 国产精品v片在线观看不卡| 国产成人精品免费视频| 国产欧美中文字幕| 欧美xxxx综合视频| 国产一区红桃视频| 一本色道久久88亚洲综合88| 国产在线一区二区三区| 成人福利免费观看| 热99精品里视频精品| 中文字幕一区二区精品| 国产日韩欧美在线视频观看| 欧美怡红院视频一区二区三区|