省市县三级联动

先在页面上加了这个:
  <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
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值