省市县三级联动

先在页面上加了这个:
   < 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();
    }


}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值