网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 DropDownList绑定数据表实现两级联动示例
内容
    这篇文章主要介绍了DropDownList绑定数据表实现两级联动具体实现,需要的朋友可以参考下
    场景一:平时我们在DropDownList控件下添加下拉选项时,都会使用它的Item.Add方法,直接在代码下添加。如果我们想添加或修改下拉选项,则必须去修改源代码。如果几个DropDownList控件的下拉选项相同,我们则需要重复添加好多次,后期的维护工作很不方便。
    场景二:我们在12306网站买票时,肯定遇到过这么一种情景:我们需要先选定目的地的省份,选完省份后在城市选框中会自动加载该省份的城市,实现两级联动。
    针对以上两个场景,我们可以用DropDownList直接绑定数据表,根据选择的省份动态加载该省份下的城市。光说不练,不是好汉,让我用一个小Demo来大家演示下详细过程吧。
    首先我们需要在数据库中建立两个表,一个是Province(省份)表,一个是City(城市)表。建表语句如下:
    代码如下:
    CreateTableProvince
    (
    ProIDintprimarykey,
    ProNamevarchar(20)notnull
    )
    CreateTableCity
    (
    CityIDintprimarykey,
    ProIDintforeignkeyreferencesProvince(ProID),
    CityNamevarchar(20)
    )
    InsertintoProvincevalues('1','北京')
    InsertintoProvincevalues('2','河北')
    InsertintoProvincevalues('3','山东')
    insertintoCityvalues('1','1','海淀')
    insertintoCityvalues('2','1','丰台')
    insertintoCityvalues('3','1','大兴')
    insertintoCityvalues('4','2','衡水')
    insertintoCityvalues('5','2','廊坊')
    insertintoCityvalues('6','2','保定')
    insertintoCityvalues('7','3','济南')
    insertintoCityvalues('8','3','烟台')
    insertintoCityvalues('9','3','青岛')
    通过建表语句我们可以知道,北京下有三个城市--海淀、丰台、大兴,河北下有三个城市--衡水、廊坊、保定,山东有三个城市--济南、烟台、青岛。
    然后我们在Web窗体中放好控件,效果如下图所示:
    dropDownList控件名称分别为ddlProvince、ddlCity
    接着我们在Web后台代码中实现功能。我们需要在Web窗体加载时,ddlProvince控件绑定Province表,在ddlProvince下拉选项改变时,ddlCity控件绑定City表。实现代码如下:
    建立数据库连接类:
    代码如下:
    publicclassDB
    {
    //连接数据库的字符串
    publicstaticSqlConnectionCreateConnection()
    {
    SqlConnectioncon=newSqlConnection("DataSource=.;InitialCatalog=test;uid=sa;pwd=123456;");
    returncon;
    }
    }
    Web窗体加载时执行代码:
    代码如下:
    protectedvoidPage_Load(objectsender,EventArgse)
    {
    //如果窗体是第一次加载
    if(!this.IsPostBack)
    {
    //绑定省份
    SqlConnectioncon=DB.CreateConnection();
    //打开数据库连接
    con.Open();
    SqlCommandcmdProvince=newSqlCommand("select*fromProvince",con);
    SqlDataReadersdrProvince=cmdProvince.ExecuteReader();
    //将sdrProvince中的内容绑定到ddlProvince下拉列表中
    this.ddlProvince.DataSource=sdrProvince;
    //需要显示的数据表Province中的内容
    this.ddlProvince.DataTextField="ProName";
    //需要显示的数据表Province中的主键
    this.ddlProvince.DataValueField="ProID";
    this.ddlProvince.DataBind();
    sdrProvince.Close();
    //关闭数据库连接
    con.Close();
    }
    }
    ddlProvince控件下拉选项改变时执行的代码:
    代码如下:
    protectedvoidddlProvince_SelectedIndexChanged(objectsender,EventArgse)
    {
    SqlConnectioncon=DB.CreateConnection();
    //打开数据库连接
    con.Open();
    //绑定城市
    SqlCommandcmdCity=newSqlCommand("select*fromCitywhereProID="+this.ddlProvince.SelectedValue,con);
    SqlDataReadersdrCity=cmdCity.ExecuteReader();
    //将sdrCity中的内容绑定到ddlCity下拉列表中
    this.ddlCity.DataSource=sdrCity;
    //需要显示的数据表City中的内容
    this.ddlCity.DataTextField="CityName";
    //需要显示的数据表City中的主键
    this.ddlCity.DataValueField="CityID";
    this.ddlCity.DataBind();
    sdrCity.Close();
    //关闭数据库连接
    con.Close();
    }
    这样,我们就用DropDownList动态绑定数据表,实现了根据选择的省份动态下拉该省份下的城市的功能,达到了面向对象设计中解耦的目的,增强了代码的可维护性和用户的体验度。
    希望我的讲解能对大家有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/20 1:46:15