.net3.5 和vs2008中Ajax控件的使用--CascadingDropDown(作级联下拉菜单)控件
来源:互联网 发布:openstack源码分析 编辑:程序博客网 时间:2024/05/16 12:16
一、属性
TargetControlID 指定要扩展的DropDownList的ID
Category DropDownList表示的类别名称,在WebMethod中会用到
PromptText 没有选择时显示的文字
LoadingText 加载数据时显示的文字
ServicePath 获取数据的Web Service,为每个DropDownList都要指定
ServiceMethod 获取数据的Web Method
ParentControlID 要扩展的DropDownList的父控件ID
SelectedValue 默认的选择项的值
二、使用实例
a、新建Ajax Web 窗体,并命名为CascadingDropDown.aspx
b、在窗体上拖放三个DropDownList控件,然后分别为刚建立的三个控件建立CascadingDropDown扩展程序
添加完扩展程序后,在源代码页面,我们可以看到如下代码:
c、我们这里使用xml文件来作为DropDownList显示的内容,新建一个xml文件取名为DropDownList.xml
DropDownList.xml文件内容如下:
d、设置好数据源后,我们要新建一个web 服务来提取xml文件中相关内容,新建Web 服务,取名为Carservice.asmx。
e、为CascadingDropDown.asmx添加方法来调用xml中的内容,代码如下:
<?xml version="1.0" encoding="utf-8" ?><CarsService> <make name="Acura"> <model name="Integra"> <color name="Green" /> <color name="Sea Green" /> <color name="Pale Green" /> </model> <model name="RL"> <color name="Red" /> <color name="Bright Red" /> </model> <model name="TL"> <color name="Teal" /> <color name="Dark Teal" /> </model> </make> <make name="Audi" value="Audi (value)"> <model name="A4" value="A4 (value)"> <color name="Azure" value="Azure (value)" /> <color name="Light Azure" value="Light Azure (value)" /> <color name="Dark Azure" value="Dark Azure (value)" /> </model> <model name="S4" value="S4 (value)"> <color name="Silver" value="Silver (value)" /> <color name="Metallic" value="Metallic (value)" /> </model> <model name="A6" value="A6 (value)"> <color name="Cyan" value="Cyan (value)" /> </model> </make> <make name="BMW" value="BMW (value)"> <model name="3 series" value="3 series (value)"> <color name="Blue" value="Blue (value)" /> <color name="Sky Blue" value="Sky Blue (value)" /> <color name="Racing Blue" value="Racing Blue (value)" /> </model> <model name="5 series" value="5 series (value)"> <color name="Yellow" value="Yellow (value)" /> <color name="Banana" value="Banana (value)" /> </model> <model name="7 series" value="7 series (value)"> <color name="Brown" value="Brown (value)" /> </model> </make></CarsService>
f、为三个CascadingDropDown控件添加相关的属性和方法,代码如下:
<asp:DropDownList ID="DropDownList1" runat="server"> </asp:DropDownList> <cc1:CascadingDropDown ID="DropDownList1_CascadingDropDown" runat="server" Enabled="True" TargetControlID="DropDownList1" Category="Make" PromptText="Please select a make" LoadingText="[Loading makes...]" ServicePath="Carservice.asmx" ServiceMethod="GetDropDownContents"> </cc1:CascadingDropDown> <asp:DropDownList ID="DropDownList2" runat="server"> </asp:DropDownList> <cc1:CascadingDropDown ID="DropDownList2_CascadingDropDown" runat="server" Enabled="True" TargetControlID="DropDownList2" Category="Model" PromptText="Please select a model" LoadingText="[Loading models...]" ServiceMethod="GetDropDownContentsPageMethod" ParentControlID="DropDownList1"> </cc1:CascadingDropDown> <asp:DropDownList ID="DropDownList3" runat="server"> </asp:DropDownList> <cc1:CascadingDropDown ID="DropDownList3_CascadingDropDown" runat="server" Enabled="True" TargetControlID="DropDownList3" Category="Color" PromptText="Please select a color" LoadingText="[Loading colors...]" ServicePath="Carservice.asmx" ServiceMethod="GetDropDownContents" ParentControlID="DropDownList2"> </cc1:CascadingDropDown>
其中大家注意GetDropDownContentsPageMethod是写在CascadingDropDown.aspx的代码页面,而不是写在web 服务里面,代码如下:
Carservice.cs中方法代码如下:
public class CarService : System.Web.Services.WebService { private static XmlDocument _document; private static Regex _inputValidationRegex; private static object _lock = new object(); // we make these public statics just so we can call them from externally for the // page method call public static XmlDocument Document { get { lock (_lock) { if (_document == null) { // Read XML data from disk _document = new XmlDocument(); _document.Load(HttpContext.Current.Server.MapPath("DropDownList.xml")); } } return _document; } } public static string[] Hierarchy { get { return new string[] { "make", "model" }; } } public static Regex InputValidationRegex { get { lock (_lock) { if (null == _inputValidationRegex) { _inputValidationRegex = new Regex("^[0-9a-zA-Z //(//)]*___FCKpd___1quot;); } } return _inputValidationRegex; } } public CarService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category) { // Get a dictionary of known category/value pairs StringDictionary knownCategoryValuesDictionary = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues); // Perform a simple query against the data document return AjaxControlToolkit.CascadingDropDown.QuerySimpleCascadingDropDownDocument(Document, Hierarchy, knownCategoryValuesDictionary, category, InputValidationRegex); } }
写在CascadingDropDown.aspx代码页面的代码如下:
public partial class CascadingDropDown:Page{ [WebMethod] [System.Web.Script.Services.ScriptMethod] public static CascadingDropDownNameValue[] GetDropDownContentsPageMethod(string knownCategoryValues, string category) { return new CarService().GetDropDownContents(knownCategoryValues, category); }}
g、效果如下:
- .net3.5 和vs2008中Ajax控件的使用--CascadingDropDown(作级联下拉菜单)控件
- .net3.5 和vs2008中Ajax控件的使用--AutoComplete(自动完成控件)的使用
- .net3.5 和vs2008中Ajax控件的使用--Accordion(可折叠)控件
- .net3.5 和vs2008中Ajax控件的使用--AlwaysVisibleControl控件
- .net3.5 和vs2008中Ajax控件的使用--Animation(信息浮动面板)控件
- .net3.5 和vs2008中Ajax控件的使用--Calendar(日历)控件
- .net3.5 和vs2008中Ajax控件的使用--CollapsiblePanel(可收缩面版)控件
- .net3.5 和vs2008中Ajax控件的使用--Accordion(可折叠)控件
- .net3.5 和vs2008中Ajax控件的使用--AjaxControlToolkit的安装
- .net3.5 和vs2008中Ajax控件的使用--AjaxControlToolkit的安装
- net3.5 和vs2008中Ajax控件的使用--AjaxControlToolkit的安装
- cascadingDropdown 控件的使用
- altas(ajax)控件(六):CascadingDropDown 联动选择的下拉框
- altas(ajax)控件(六):CascadingDropDown 联动选择的下拉框
- 省市级联(CascadingDropDown控件的应用)
- 省市级联(CascadingDropDown控件的应用)
- ASP.NET3.5中AJAX控件
- AJAX控件之CascadingDropDown
- Oracle SQL group by day/week/month/quarter
- 中国版“女阿甘”米亮用《小梦想》执着追随圣火脚步
- MVC的各个部分都有那些技术来实现?如何实现?
- CCW:大连软交会凸显中国软件新趋势
- Struts Logic标记库
- .net3.5 和vs2008中Ajax控件的使用--CascadingDropDown(作级联下拉菜单)控件
- 总结ERROR 2002 (HY000):Can't connect to...之错误
- Oracle的日期函数
- all_constraints 表字段Constraint_type值含义
- Java中对文件的操作
- linux与windows分区互访
- ASP.NET操作Access数据库
- 关于MVC的理解
- Eclipse快捷键