手机版

ASP .专题级联控件实现代码

时间:2021-10-27 来源:互联网 编辑:宝哥软件园 浏览:

了解级联数据定义语言那么考虑以下几种常见情景: 用户注册时需要选择国家、省、市、地区等。用户购买产品时选择产品类别、产品名称、产品型号。以上的例子有一些共同特点:上一级(如省)选择后下一级(如市)才可以选择。下一级的内容由上一级的内容决定。像这样的一组控件就是级联DDL .常见的解决方法是将带有层次的数据写入XML,然后设置控件的自动提交属性为真的开启自动回调,最后处理事件中事件。这样不仅十分麻烦,过多的页面刷新会给用户带来反感。那么如何实现无刷新的级联控件呢?开始一、创建可扩展置标语言数据文件比如,我想做用户注册时的省、市的级联DDL,那么首先建立以下可扩展置标语言文件。复制代码代码如下:xmlversion='1.0 '编码='utf-8 '?CityServiceSource areaname='中国ProfeSsional id=' 1 ' ProfeSsional id=' 110000 ' name='北京市CityID='110100 '名称='市辖区PieceareaPieceareaID=' 110101 '名称='东城区/piecarepiecareid=' 110102 ' name='西城区/piecarepiecareid=' 110103 ' name='崇文区/piecarepiecareid=' 110104 ' name='宣武区/piecarepiecareid=' 110105 ' name='朝阳区/piecarepiecareid=' 110106 ' name='丰台区/piecarepiecareid=' 110107 ' name='石景山区/piecarepiecareid=' 110108 ' name='海淀区/piecarepiecareid=' 110109 ' name='门头沟区/piecarepiecareid=' 110111 '名称='房山区/piecarepiecareid=' 110112 '名称='通州区/piecarepiecareid=' 110113 '名称='顺义区/piecarepiecareid=' 110114 '名称='昌平区/piecarepiecareid=' 110115 '名称='大兴区/piecarepiecareid=' 110116 '名称='怀柔区/piecarepiecareid=' 110117 '名称='平谷区//city cityCityID='110200'name='县PieceareaPieceareaID=' 110228 '名称='密云县/piecarepiecareid=' 110229 '名称='延庆县//城市/省/地区areaname='英国areaname='美国areaname='日本/地区/城市服务来源二、创建网络服务创建网服务(如CityService.asmx)复制代码代码如下:[WebServiCe(NameSpace=' http://tempuri。 org/')][WebServiceBinding(CONFOrmSTO=WSiprofiles .基础cprofile 1 _ 1)][系统网络。剧本。服务。脚本服务()]公开课城市服务:系统网络。服务。web服务{ privatesticxmldocument _ document;//用来读取可扩展置标语言数据私有静态对象_ lock=new object();//多线程并发处理publicationstaticxmldocument Document { get { lock(_ lock){ if(_ Document==null){ _ Document=newXmlDocument();_文档。加载(HttpContext .当前。服务器。mappath(~/App _ Data/city service source。XML ');} } return _ document } } publicationstring[]Hierarchy { get { returnnewstring[]{ ' area ','省份' };//XML数据的层次} } [WebMethod] //一会儿控件会自动调用的网方法。这个函数不根据具体情况改变公共AjaxControlToolkit .cascadingdropdownamevalue[]getdropdowntcontents(字符串已知categoryvalues,字符串类别){字符串字典已知categoryvalues sdictionary=AJaxcontroltoolkit .cascadingdropown。parseknowncategoryvalues字符串(knownCategoryValues);返回AjaxControlToolkit .CascadingDropDown。查询simplecascadingdropdown文档(文档,层次结构,knownCategoryValuesDictionary,类别);} } 三、创建动态链接库控件如果没有安装埃阿斯控制工具包去下载并安装(http://asp.net)。创建三个标准的DropDownList(默认命名为DropDownList1、DropDownList2、DropDownList3)。然后在埃阿斯控制工具包中拖拽出三个级联下降控件,注意一个延长器只能对于一个标准控件。

复制代码代码如下: ajaxtoolkit : cascadingdropbdown id=' cascadingdropbdown 1 ' runat=' server ' service method=' getdropdowndcontents ' ServiCepath=' ~/web服务/city服务。asmx ' targetcontrolid=' dropdownlist 1 ' Category=' area '正在加载文本='正在读取.'' PromptText='请选择国家/AJaxtoolkit : CascadingDropDown AJaxtoolkit : CascadingDropDown id=' CascadingDropDown 2 ' runat=' server ' ParentControlID=' DropDownList 1 '服务方法=' GetDropDownContentSpagemethod ' TargetControlID=' DropDownList 2 '类别='省份正在加载文本='正在读取.'' PromptText='请选择省/AJaxtoolkit : CascadingDropDown AJaxtoolkit : CascadingDropDown id=' CascadingDropDown 3 ' runat=' server ' ParentControlID=' DropDownList 2 '服务方法=' GetDropDownContents '服务路径=' ~/web services/city服务。asmx ' targetcontrolid=' DropDownList 3 '类别=' city '正在加载文本='正在读取.' PromptText='请选择城市/AJaxtoolkit : CascadingDropDown ASP : updateTempled=' updatePanel 1 ' runat=' server ' updatemode=' Conditional '呈现模式=' inline '触发器ASP : asyncpostbacbacktriggercontrolid=' DropDownList 3 '事件名称=' selectedindexChanged '/触发器/asp:更新面板在".cs "文件中创建网方法。[网络方法][系统网络。剧本。服务。script method]publicationstaticddingdropdownamevalue[]getdropdowntcontentspagemetmethod(字符串已知categoryvalues,字符串类别){ returnnew city service().getDropDownContents(knownCategoryValues,category);} 下面分别对级联下降的各个属性进行说明服务方法=' GetDropDownContents '调用的网方法服务路径=' ~/web服务/城市服务。asmx ' web服务地址TargetControlID='DropDownList1 '与其绑定的控件控件的标识类别='区域'该级联数据定义语言的层次正在加载文本='正在读取.'加载时显示的文字' PromptText='请选择国家' 未选择时显示的文字可以说埃阿斯在用户体验带来了革命性的变化。异步的刷新模式大大改进了传统"一步一刷新"的尴尬局面。由于本人修为尚浅,如有错误欢迎批评指证作者金2008/12/11

版权声明:ASP .专题级联控件实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。