最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DropDownList綁定數(shù)據(jù)表實現(xiàn)兩級聯(lián)動示例

 更新時間:2014年03月11日 15:37:12   作者:  
這篇文章主要介紹了DropDownList綁定數(shù)據(jù)表實現(xiàn)兩級聯(lián)動具體實現(xiàn),需要的朋友可以參考下
場景一:平時我們在DropDownList控件下添加下拉選項時,都會使用它的Item.Add方法,直接在代碼下添加。如果我們想添加或修改下拉選項,則必須去修改源代碼。如果幾個DropDownList控件的下拉選項相同,我們則需要重復(fù)添加好多次,后期的維護工作很不方便。

場景二:我們在12306網(wǎng)站買票時,肯定遇到過這么一種情景:我們需要先選定目的地的省份,選完省份后在城市選框中會自動加載該省份的城市,實現(xiàn)兩級聯(lián)動。

針對以上兩個場景,我們可以用DropDownList直接綁定數(shù)據(jù)表,根據(jù)選擇的省份動態(tài)加載該省份下的城市。光說不練,不是好漢,讓我用一個小Demo來大家演示下詳細過程吧。

首先我們需要在數(shù)據(jù)庫中建立兩個表,一個是Province(省份)表,一個是City(城市)表。建表語句如下:
復(fù)制代碼 代碼如下:

Create Table Province
(
ProID int primary key,
ProName varchar(20) not null
)

Create Table City
(
CityID int primary key,
ProID int foreign key references Province(ProID),
CityName varchar(20)
)

Insert into Province values('1','北京')
Insert into Province values('2','河北')
Insert into Province values('3','山東')

insert into City values('1','1','海淀')
insert into City values('2','1','豐臺')
insert into City values('3','1','大興')
insert into City values('4','2','衡水')
insert into City values('5','2','廊坊')
insert into City values('6','2','保定')
insert into City values('7','3','濟南')
insert into City values('8','3','煙臺')
insert into City values('9','3','青島')

通過建表語句我們可以知道,北京下有三個城市--海淀、豐臺、大興,河北下有三個城市--衡水、廊坊、保定,山東有三個城市--濟南、煙臺、青島。

然后我們在Web窗體中放好控件,效果如下圖所示:
 
dropDownList控件名稱分別為ddlProvince、ddlCity

接著我們在Web后臺代碼中實現(xiàn)功能。我們需要在Web窗體加載時,ddlProvince控件綁定Province表,在ddlProvince下拉選項改變時,ddlCity控件綁定City表。實現(xiàn)代碼如下:

建立數(shù)據(jù)庫連接類:
復(fù)制代碼 代碼如下:

public class DB
{
//連接數(shù)據(jù)庫的字符串
public static SqlConnection CreateConnection()
{
SqlConnection con = new SqlConnection("Data Source=. ;Initial Catalog=test;uid=sa;pwd=123456;");
return con;
}
}

Web窗體加載時執(zhí)行代碼:
復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
//如果窗體是第一次加載
if (!this.IsPostBack)
{
//綁定省份
SqlConnection con = DB.CreateConnection();
//打開數(shù)據(jù)庫連接
con.Open();
SqlCommand cmdProvince = new SqlCommand("select * from Province", con);
SqlDataReader sdrProvince = cmdProvince.ExecuteReader();
//將sdrProvince中的內(nèi)容綁定到ddlProvince下拉列表中
this.ddlProvince.DataSource = sdrProvince;
//需要顯示的數(shù)據(jù)表Province中的內(nèi)容
this.ddlProvince.DataTextField = "ProName";
//需要顯示的數(shù)據(jù)表Province中的主鍵
this.ddlProvince.DataValueField = "ProID";
this.ddlProvince.DataBind();
sdrProvince.Close();
//關(guān)閉數(shù)據(jù)庫連接
con.Close();
}
}

ddlProvince控件下拉選項改變時執(zhí)行的代碼:
復(fù)制代碼 代碼如下:

protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = DB.CreateConnection();
//打開數(shù)據(jù)庫連接
con.Open();
//綁定城市
SqlCommand cmdCity = new SqlCommand("select * from City where ProID=" + this.ddlProvince.SelectedValue, con);
SqlDataReader sdrCity = cmdCity.ExecuteReader();
//將sdrCity中的內(nèi)容綁定到ddlCity下拉列表中
this.ddlCity.DataSource = sdrCity;
//需要顯示的數(shù)據(jù)表City中的內(nèi)容
this.ddlCity.DataTextField = "CityName";
//需要顯示的數(shù)據(jù)表City中的主鍵
this.ddlCity.DataValueField = "CityID";
this.ddlCity.DataBind();
sdrCity.Close();
//關(guān)閉數(shù)據(jù)庫連接
con.Close();
}

這樣,我們就用DropDownList動態(tài)綁定數(shù)據(jù)表,實現(xiàn)了根據(jù)選擇的省份動態(tài)下拉該省份下的城市的功能,達到了面向?qū)ο笤O(shè)計中解耦的目的,增強了代碼的可維護性和用戶的體驗度。

希望我的講解能對大家有所幫助。

相關(guān)文章

最新評論

山东省| 白玉县| 贞丰县| 苍溪县| 聊城市| 陇川县| 旬邑县| 林甸县| 元江| 铜梁县| 上蔡县| 龙口市| 德令哈市| 沾化县| 保山市| 巨鹿县| 长寿区| 红桥区| 鄄城县| 石阡县| 甘孜县| 巫山县| 龙岩市| 江阴市| 电白县| 昂仁县| 宝丰县| 五峰| 慈利县| 芜湖县| 梁河县| 牙克石市| 英山县| 和林格尔县| 育儿| 呼和浩特市| 库尔勒市| 潞城市| 武清区| 杨浦区| 县级市|