标题 | 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动态绑定数据表,实现了根据选择的省份动态下拉该省份下的城市的功能,达到了面向对象设计中解耦的目的,增强了代码的可维护性和用户的体验度。 希望我的讲解能对大家有所帮助。 |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。