省市县三级联动

来源:互联网 发布:发布淘宝类目如何选择 编辑:程序博客网 时间:2024/05/17 04:51
省市县三级联动的实现
< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
前台页面
三个下拉列表控件
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LiandongThree.aspx.cs" Inherits="Liandong_LiandongThree" %>
 
<!DOCTYPE html PUBLIC "-//W< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>三级联动练习</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlProvince" runat="server" AutoPostBack="true"
            onselectedindexchanged="ddlProvince_SelectedIndexChanged">
            <asp:ListItem Value="0">--省份--</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="ddlCity" runat="server" AutoPostBack="true"
            onselectedindexchanged="ddlCity_SelectedIndexChanged">
            <asp:ListItem Value="0">--城市--</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="ddlDistrict" runat="server" AutoPostBack="true"
            onselectedindexchanged="ddlDistrict_SelectedIndexChanged">
            <asp:ListItem Value="0">--县区--</asp:ListItem>
        </asp:DropDownList>
    </div>
    </form>
</body>
</html>
 
 
 
 
 
后台代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
 
public partial class Liandong_LiandongThree : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.Page.IsPostBack)
        {
            getddlProvinceDataBind();       //页面首次加载执行省份绑定
        }
    }
 
    public void getddlProvinceDataBind()       //省份数据绑定
    {
        string sqlProvince = "SELECT * FROM S_Province";
        ddlProvince.DataSource = getDataSet(sqlProvince);
        ddlProvince.DataTextField = "ProvinceName";
        ddlProvince.DataValueField = "ProvinceID";
        ddlProvince.DataBind();
 
        ddlProvince.Items.Insert(0, new ListItem("--省份--","0"));
    }
    protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)       //第一层,省份选择事件
    {
        int ProvinceID = Convert.ToInt32(ddlProvince.SelectedValue);
        if (ProvinceID > 0)
        {
            string sqlCity = "SELECT * FROM S_City WHERE ProvinceID=" + ProvinceID + "";       //根据省份ID找城市
            ddlCity.DataSource = getDataSet(sqlCity);
            ddlCity.DataTextField = "CityName";
            ddlCity.DataValueField = "CityID";
            ddlCity.DataBind();
 
            ddlCity.Items.Insert(0, new ListItem("--请选择城市--", "0"));
        }
        else
        {
            ddlCity.Items.Clear();
            ddlCity.Items.Insert(0, new ListItem("--请选择城市--", "0"));
            ddlDistrict.Items.Clear();
            ddlDistrict.Items.Insert(0, new ListItem("--请选择县区--", "0"));
        }
    }
    protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)       //第二层,城市选择事件
    {
        int CityID = Convert.ToInt32(ddlCity.SelectedValue);
        if (CityID > 0)
        {
            string sqlDistrict = "SELECT * FROM S_District WHERE CityID=" + CityID + "";       //根据城市ID找县区
            ddlDistrict.DataSource = getDataSet(sqlDistrict);
            ddlDistrict.DataTextField = "DistrictName";
            ddlDistrict.DataValueField = "DistrictID";
            ddlDistrict.DataBind();
 
            ddlDistrict.Items.Insert(0, new ListItem("--请选择县区--", "0"));
        }
        else
        {
            ddlDistrict.Items.Clear();
            ddlDistrict.Items.Insert(0, new ListItem("--请选择县区--", "0"));
        }
    }
    protected void ddlDistrict_SelectedIndexChanged(object sender, EventArgs e)       //第三层,县区选择事件
    {
        int ProvinceID = Convert.ToInt32(ddlProvince.SelectedValue);
        int CityID = Convert.ToInt32(ddlCity.SelectedValue);
        int DistrictID = Convert.ToInt32(ddlDistrict.SelectedValue);
        if (ProvinceID > 0 && CityID > 0 && DistrictID > 0)
        {
            Response.Write("您选择的省份ID:" + ProvinceID + "城市ID:" + CityID + "县区ID:" + DistrictID + "");
        }
    }
 
    public DataSet getDataSet(string sql)       //自定义方法,sql语句参数,返回DataSet数据集
    {
        string connection = ConfigurationManager.ConnectionStrings["connectionBlogs"].ConnectionString;
        SqlConnection conn = new SqlConnection(connection);
        SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        return ds;
    }
}