先在页面上加了这个:
<
asp:ScriptManager ID
=
"
ScriptManager1
"
runat
=
"
server
"
AllowCustomErrorsRedirect
=
"
false
"
EnablePartialRendering
=
"
true
"
AsyncPostBackErrorMessage
=
"
cuowu
"
>
</
asp:ScriptManager
>
实现功能的控件:
<
asp:UpdatePanel ID
=
"
UpdatePanel1
"
runat
=
"
server
"
>
<
ContentTemplate
>
<
asp:DropDownList ID
=
"
ddlProvince
"
runat
=
"
server
"
>
</
asp:DropDownList
>
<
asp:DropDownList ID
=
"
ddlCity
"
runat
=
"
server
"
>
</
asp:DropDownList
>
<
asp:DropDownList ID
=
"
ddlVilliage
"
runat
=
"
server
"
>
</
asp:DropDownList
>
<
ajaxToolkit:CascadingDropDown ID
=
"
CascadingDropDown2
"
runat
=
"
server
"
TargetControlID
=
"
ddlProvince
"
ServicePath
=
"
PCAService.asmx
"
ServiceMethod
=
"
GetProvinceContents
"
Category
=
"
Province
"
PromptText
=
"
请选择省份
"
LoadingText
=
"
省份加载中
"
>
</
ajaxToolkit:CascadingDropDown
>
<
ajaxToolkit:CascadingDropDown ID
=
"
CascadingDropDown1
"
runat
=
"
server
"
ParentControlID
=
"
ddlProvince
"
ServicePath
=
"
PCAService.asmx
"
ServiceMethod
=
"
GetCityContents
"
Category
=
"
City
"
TargetControlID
=
"
ddlCity
"
PromptText
=
"
请选择城市
"
LoadingText
=
"
城市加载中
"
>
</
ajaxToolkit:CascadingDropDown
>
<
ajaxToolkit:CascadingDropDown ID
=
"
CascadingDropDown3
"
runat
=
"
server
"
Category
=
"
Villiage
"
LoadingText
=
"
区县加载中
"
ParentControlID
=
"
ddlCity
"
PromptText
=
"
请选择区县
"
ServiceMethod
=
"
GetViliageContents
"
ServicePath
=
"
PCAService.asmx
"
TargetControlID
=
"
ddlVilliage
"
>
</
ajaxToolkit:CascadingDropDown
>
</
ContentTemplate
>
</
asp:UpdatePanel
>
App_Code文件夹下
PCAService.cs文件:
using
System;
using
System.Web;
using
System.Collections;
using
System.Web.Services;
using
System.Web.Services.Protocols;
using
System.Web.Script.Services;
using
System.Collections.Generic;
using
System.Collections.Specialized;
using
AjaxControlToolkit;
using
System.Data.SqlClient;
using
System.Data;
using
System.Configuration;


/**/
/// <summary>
///PCAService 的摘要说明
/// </summary>
[WebService(Namespace
=
"
http://tempuri.org/
"
)]
[WebServiceBinding(ConformsTo
=
WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public
class
PCAService : System.Web.Services.WebService

{
public SqlConnection sqlConn;

public PCAService()

{

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
this.sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
}


/**//// <summary>
/// 获取省份数据
/// </summary>
/// <param name="knownCategoryValues"></param>
/// <param name="category"></param>
/// <returns></returns>
[WebMethod]
public CascadingDropDownNameValue[] GetProvinceContents(string knownCategoryValues, string category)

{
List<CascadingDropDownNameValue> provinceList = new List<CascadingDropDownNameValue>();

sqlConn.Open();

string strSql = "Select * From Province";

SqlCommand sqlCmd = new SqlCommand(strSql, sqlConn);

SqlDataReader dtrProvince = sqlCmd.ExecuteReader();

while (dtrProvince.Read())

{
provinceList.Add(new CascadingDropDownNameValue(dtrProvince["Name"].ToString(), dtrProvince["Code"].ToString()));
}

dtrProvince.Close();

sqlConn.Close();

return provinceList.ToArray();
}

/**//// <summary>
/// 获取市数据
/// </summary>
/// <param name="knownCategoryValues"></param>
/// <param name="category"></param>
/// <returns></returns>
[WebMethod]
public CascadingDropDownNameValue[] GetCityContents(string knownCategoryValues, string category)

{
StringDictionary provinceList = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);

sqlConn.Open();

string strSql = "Select * From city Where ProvinceId='" + provinceList["Province"] + "'";

SqlCommand sqlCmd = new SqlCommand(strSql, sqlConn);

SqlDataReader dtrCity = sqlCmd.ExecuteReader();

List<CascadingDropDownNameValue> cityList = new List<CascadingDropDownNameValue>();

while (dtrCity.Read())

{
cityList.Add(new CascadingDropDownNameValue(dtrCity["Name"].ToString(), dtrCity["code"].ToString()));
}

dtrCity.Close();

return cityList.ToArray();
}

/**//// <summary>
/// 获取乡镇数据
/// </summary>
/// <param name="knownCategoryValues"></param>
/// <param name="category"></param>
/// <returns></returns>
[WebMethod]
public CascadingDropDownNameValue[] GetViliageContents(string knownCategoryValues, string category)

{
StringDictionary cityList = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);

sqlConn.Open();

string strSql = "Select * From area Where CityId='" + cityList["City"] + "'";

SqlCommand sqlCmd = new SqlCommand(strSql, sqlConn);

SqlDataReader dtrViliage = sqlCmd.ExecuteReader();

List<CascadingDropDownNameValue> viliageList = new List<CascadingDropDownNameValue>();

while (dtrViliage.Read())

{
viliageList.Add(new CascadingDropDownNameValue(dtrViliage["Name"].ToString(), dtrViliage["id"].ToString()));
}

dtrViliage.Close();

return viliageList.ToArray();
}

}










































































































































































