时哥给实现了三级联动,勉强能看懂,也会复制来代码使用了。
感觉最近的工作都是复制粘贴,可傻了~~~~~~


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


}


posted on 2007-11-07 00:33  超少  阅读(1384)  评论(1编辑  收藏  举报