场景1:当我们添加下拉
选项中的
控制下,我们利用它的项目。添加
方法直接添加到代码。如果需要添加或
修改下拉选项,我们必须修改源代码。如果几个DropDownList控件具有相同的下拉选项,我们需要增加许多倍,后期
维护不方便。
场景二:当我们在12306
网站购买机票时,我们肯定遇到过这样一个场景:我们需要先选择目的地省份,然后在选定的省份后自动加载各省的城市,实现两级联动。
对于上述两种
情况下,我们可以将数据表直接与DropDownList和动态加载下的城市省根据选定的省份。不实践,不是一个好男人,让我用一个小的demo展示过程的细节。
首先,我们需要在数据库中
设置两个表,一个是省(省)表,另一个是城市(城市)表:
复制代码代码如下所示:
创建表的省
(
脓样的主关键字,
产品名称varchar(20)不为空
)
创建表的市
(
cityid主关键字,
商品编号int外键引用省(商品编号),
CityName varchar(20)
)
插入省值(1 ','北京')
插入省值(2 ','河北')
插入省值(3'、‘山东')
插入城市价值(1,1'、‘海淀')
插入城市价值(2,1 ','凤台')
插入城市价值(3,1、大兴)
插入城市价值(4,2 ','衡水')
插入城市价值(5,2 ','廊坊')
插入城市价值(6,2 ','保定')
插入城市价值(7',3'、‘济南')
插入城市价值(8',3',‘烟台')
插入城市价值(9,3'、‘青岛')
通过声明,我们知道北京有三个城市:海淀、凤台、大兴、河北和三个城市,衡水、廊坊和保定,山东有三个城市——济南、烟台和烟台。
然后我们将控件放入Web窗体中,如下图所示:
DropDownList控件的
名字都ddlprovince,ddlcity
然后,我们实现的
功能在Web后台代码。当我们需要加载的Web窗体,控件绑定的ddlprovince省表,当ddlprovince下拉选项的变化,ddlcity控制结合城市表。实现代码如下:
构建数据库
连接类:
复制代码代码如下所示:
公共类数据库
{
数据库连接字符串
公共静态SqlConnection CreateConnection()
{
SqlConnection CON =新的SqlConnection(数据源=。;初始
目录=试验;UID = SA;
密码= 123456;);
返回控件;
}
}
在加载Web窗体时
执行代码:
复制代码代码如下所示:
protected void page_load(object sender,EventArgs e)
{
如果表单是第一次加载的
如果(!这IsPostBack)。
{
{绑定}省份
SqlConnection CON = db.createconnection();
打开数据库连接
打开();
SqlCommand cmdprovince =新SqlCommand(选择*从省
SqlDataReader sdrprovince = cmdprovince.executereader();
该sdrprovince / ddlprovince结合内容下拉列表
this.ddlprovince.datasource = sdrprovince;
显示数据的内容的表
this.ddlprovince.datatextfield =产品名称;
要显示主键的数据表省
this.ddlprovince.datavaluefield =商品编号;
This.ddlProvince.DataBind();
sdrprovince密切();
关闭数据库连接
关闭();
}
}
该代码被执行时,ddlprovince控制下拉选项变化:
复制代码代码如下所示:
protected void ddlprovince_selectedindexchanged(object sender,EventArgs e)
{
SqlConnection CON = db.createconnection();
打开数据库连接
打开();
城市/界
SqlCommand cmdcity =新SqlCommand(选择*从锡蒂商品编号=+ this.ddlprovince.selectedvalue,CON);
SqlDataReader sdrcity = cmdcity.executereader();
该sdrcity / ddlcity结合内容下拉列表
this.ddlcity.datasource = sdrcity;
表城市显示数据的内容
this.ddlcity.datatextfield =cityName ;
用于显示主键的数据表城市
this.ddlcity.datavaluefield =cityid ;
This.ddlCity.DataBind();
sdrcity密切();
关闭数据库连接
关闭();
}
在这种方式中,我们动态绑定数据表中,实现城市功能在省根据选定的省份的动态,从而达到面向对象设计解耦的目的,提高可维护性和代码的
用户体验。
我希望我的解释能对你有所帮助。