先在页面上加了这个:
<
asp:ScriptManager ID
=
"
ScriptManager1
"
runat
=
"
server
"
AllowCustomErrorsRedirect
=
"
false
"
EnablePartialRendering = " true " AsyncPostBackErrorMessage = " cuowu " >
</ asp:ScriptManager >
实现功能的控件:
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文件:
< 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 >
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();
}
}
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();
}
}