<ajaxToolkit:CascadingDropDown ID="CDD1" runat="server"
TargetControlID="DropDownList2"//所绑定的控件
Category="Model" //对应的数据的分类,例如“区域”、“省份”或者“城市”
PromptText="Please select a model" //在 DropDownList 被选择前提示用户的信息
PromptValue - 对应提示信息的 Value,这里指的是 DropDownList 中一个 ListItem 中的 Value 值
EmptyText="没有数据" //当从 Web Service 中获得数据为空的时候 DropDownList 显示的信息,可选
EmptyValue="0" //对应当数据项为空的时候 DropDownList 中显示 EmptyText 的信息的 Value,这里指的是 DropDownList 中一个 ListItem 中的 Value 值,可选
LoadingText="[Loading models...]" //当 CascadingDropDown 在和 Web Service 进行数据通信的时候显示的信息
ServicePath="CarsService.asmx" //对应的获得数据的 Web Service 路径,如果对应的 Web Service 方法为当前页的 Web Service 方法时,需要将其指定为空
ServiceMethod="GetDropDownContents" //对应的获得 Web Service 方法名,它需要指定为如下的函数签名
ParentControlID="ddlCategory" //绑定父控件的名字当this不为为级联的第一级时要使用此属性
SelectedValue="SomeValue" />
——————————————————————————————————————————————————
WEB服务的代码
[WebMethod]
public CascadingDropDownNameValue[] GetCategory(string knownCategoryValues, string category) //cascadingDropDownNameValue[]是个键值对的数组[值,键];
{
List<CascadingDropDownNameValue> namevalues = new List<CascadingDropDownNameValue>();
List<Category> categories = CategoryManager.SelectAll() as List<Category>;
foreach (Category item in categories)
{
namevalues.Add(new CascadingDropDownNameValue(item.CategoryName, item.CategoryId.ToString()));
}
return namevalues.ToArray();
}
[WebMethod]
public CascadingDropDownNameValue[] GetProduct(string knownCategoryValues, string category) //knownCategoryValues中存的为对应父控件的Category:value为String类型
例如 城市:110000
{
List<CascadingDropDownNameValue> namevalues = new List<CascadingDropDownNameValue>();
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues); 此方法可以把String类型的KnownCategoryValues裁切成[值,键]StringDictionary类型
List<Product> products = ProductManager.GetProductsByCategoryId(Convert.ToInt32(kv["Category"])); 根据Kv的键取值得到ProductList泛型
foreach (Product product in products)
{
namevalues.Add(new CascadingDropDownNameValue(product.ProductName, product.ProductId.ToString()));
}
return namevalues.ToArray();
}