用代码实现控件DropDownList的三级联动

本文通过编程展示了如何在ASP.NET网站项目中创建省、市、县三级联动的DropDownList控件。详细介绍了数据库设计、页面布局以及关键代码实现,实现了从SQL Server数据库获取数据并动态填充下拉列表的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、编程实现省、市、县三级联动效果

具体要求:

l        在SQL Server数据库中创建一名为testdb的数据库,并创建如下三张表,并自行添加部分测试数据:

Province表,用于存放省份信息

字段名称

类型

长度

是否为主键

外键

说明

provinceId

varchar

2

 

省份代码

provinceName

varchar

15

 

 

省份名称

 

City表,用于存放城市信息

字段名称

类型

长度

是否为主键

外键

说明

cityId

int

4

 

城市代码

cityName

varchar

15

 

 

城市名称

provinceId

varchar

2

 

所在省份ID

 

County表,用来存放县市信息

 

字段名称

类型

长度

是否为主键

外键

说明

countryId

int

4

 

县代码

countryName

varchar

20

 

 

县名称

cityId

varchar

2

 

所在城市ID

 1   新建一个网站项目,在Default.aspx页面中添加3个DropDownList控件,分别命名为ddlProvince、ddlCity、ddlCountry,分别表示省份、城市和县下拉列表框。界面设计Q1.ASPX页面所示。

2  当页面一开始出现时,首先将所有的省份信息加载到ddlProvince下拉列表框中,当用户选择某一省份时,将该省所有的城市信息显示在ddlCity下拉列表框中,当用户选择一个城市时,将该城市下所有的县显示在ddlCountry下拉框中。

主要代码:

添加命名空间:using System.Data;
using System.Data.SqlClient;

数据库连接:public static string strcon = @"data source=MSY;database=testdb;Integrated Security=TRUE";

  protectedvoid Page_Load(objectsender, EventArgs e)

    {

        if(!IsPostBack)

        {

           

          SqlConnection conn = new SqlConnection(strcon);

           SqlDataAdaptersda = new SqlDataAdapter("select * from Province", conn);

            DataSetds = new DataSet();

            sda.Fill(ds);

            ddlProvince.DataSource = ds.Tables[0];

            ddlProvince.DataTextField = "ProvinceName";

            ddlProvince.DataValueField = "ProvinceId";

            ddlProvince.DataBind();

        }  

    protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)省份:/DropDownList的ddlProvince事件,同时注意属性autopostback值为True

    {
        string Id = ddlProvince.SelectedValue.ToString();
        SqlConnection conn = new SqlConnection(strcon);
        conn.Open();
        string sq1 = "select * from City where ProvinceId='{0}'";
        sq1 = string.Format(sq1, Id);
        SqlDataAdapter da = new SqlDataAdapter(sq1, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        ddlCity.DataSource = ds.Tables[0];
        ddlCity.DataTextField = "CityName";
        ddlCity.DataValueField = "CityId";
        ddlCity.DataBind();
    }

protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)//城市

/DropDownList的ddlCity事件,同时注意属性autopostback值为True


    {
        string Id = ddlCity.SelectedValue.ToString();
        SqlConnection conn = new SqlConnection(strcon);
        conn.Open();
        string sq1 = "select * from Country where CityId='{0}'";
        sq1 = string.Format(sq1, Id);
        SqlDataAdapter da = new SqlDataAdapter(sq1, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        ddlCountry.DataSource = ds.Tables[0];
        ddlCountry.DataTextField = "CountyrName";
        ddlCountry.DataValueField = "CountyrName";
        ddlCountry.DataBind();


    }

结果如下图所示:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值