Ajax WebService 省级联动

WebService与AjaxControlToolkit级联示例
本文介绍了一个使用WebService结合AjaxControlToolkit实现省市区级联选择的应用案例。通过具体的代码示例展示了如何从数据库中获取省份、城市及区县数据,并返回给前端进行级联展示。

AjaxControlToolkit  控件

新建服务 WebService

WebService.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;

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

    public SNWebService()
    {
        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }
    /// <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>();

        string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; 

        SqlConnection sqlConn = new SqlConnection(connectionString);

        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);

        string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

        SqlConnection sqlConn = new SqlConnection(connectionString);

        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);

        string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];

        SqlConnection sqlConn = new SqlConnection(connectionString);

        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();
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值