CascadingDropDown 完成级联选择项变化的过程是通过发布在 IIS 服务器上的 Web Service 实现的。这个 Web Service 将可以完全地控制其中级联的业务逻辑。
通过这个 Web Service 开发人员可以很方便地从 Xml 或者数据库中获得相关数据。
CascadingDropDown 将会被初始化成如下代码。斜体 属性为可选属性:
<ajaxToolkit:CascadingDropDown ID="CDD1" runat="server"
TargetControlID="DropDownList2"
Category="Model"
PromptText="Please select a model"
LoadingText="[Loading models...]"
ServicePath="CarsService.asmx"
ServiceMethod="GetDropDownContents"
ParentControlID="DropDownList1"
SelectedValue="SomeValue" />
- TargetControlID - 扩展的 DropDownList 控件 ID
- Category - 对应的数据的分类,例如上面例子中的“区域”、“省份”或者“城市”
- PromptText - 在 DropDownList 被选择前提示用户的信息
- PromptValue - 对应提示信息的 Value,这里指的是 DropDownList 中一个 ListItem 中的 Value 值
- EmptyText - 当从 Web Service 中获得数据为空的时候 DropDownList 显示的信息,可选
- EmptyValue - 对应当数据项为空的时候 DropDownList 中显示 EmptyText 的信息的 Value,这里指的是 DropDownList 中一个 ListItem 中的 Value 值,可选
- LoadingText - 当 CascadingDropDown 在和 Web Service 进行数据通信的时候显示的信息
- ServicePath - 对应的获得数据的 Web Service 路径,如果对应的 Web Service 方法为当前页的 Web Service 方法时,需要将其指定为空
- ServiceMethod - 对应的获得 Web Service 方法名,它需要指定为如下的函数签名
示例WebService:
注意:
你可以替换上面示例中的方法名称,GetCountries为任何你想要的方法名,但是返回值和参数列表需要保持完全一致。
ContextKey - 一个可用于传入 Web Service 方法的参数,该参数将用于 Web Service 根据客户端的不同操作产生相应的不同的返回结果,当采用 ContextKey 的时候,这个方法的函数签名如下表示:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public CascadingDropDownNameValue[] GetDropDownContents(
string knownCategoryValues,
string category, string contextKey) { ... }
注意: