国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

DropDownList綁定數據表實現兩級聯動示例

2024-07-10 13:27:21
字體:
來源:轉載
供稿:網友
場景一:平時我們在DropDownList控件下添加下拉選項時,都會使用它的Item.Add方法,直接在代碼下添加。如果我們想添加或修改下拉選項,則必須去修改源代碼。如果幾個DropDownList控件的下拉選項相同,我們則需要重復添加好多次,后期的維護工作很不方便。

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

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

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

復制代碼 代碼如下:


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綁定數據表實現兩級聯動示例

 
dropDownList控件名稱分別為ddlProvince、ddlCity

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

建立數據庫連接類:

復制代碼 代碼如下:


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


Web窗體加載時執行代碼:

復制代碼 代碼如下:


protected void Page_Load(object sender, EventArgs e)
{
//如果窗體是第一次加載
if (!this.IsPostBack)
{
//綁定省份
SqlConnection con = DB.CreateConnection();
//打開數據庫連接
con.Open();
SqlCommand cmdProvince = new SqlCommand("select * from Province", con);
SqlDataReader sdrProvince = 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控件下拉選項改變時執行的代碼:

復制代碼 代碼如下:


protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = DB.CreateConnection();
//打開數據庫連接
con.Open();
//綁定城市
SqlCommand cmdCity = new SqlCommand("select * from City where ProID=" + this.ddlProvince.SelectedValue, con);
SqlDataReader sdrCity = 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動態綁定數據表,實現了根據選擇的省份動態下拉該省份下的城市的功能,達到了面向對象設計中解耦的目的,增強了代碼的可維護性和用戶的體驗度。

希望我的講解能對大家有所幫助。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富顺县| 三穗县| 河津市| 玉环县| 金湖县| 察隅县| 乐昌市| 保山市| 昌乐县| 泾川县| 石门县| 饶河县| 吉首市| 阿拉善盟| 屏山县| 桦南县| 长沙县| 城市| 乌鲁木齐县| 乌海市| 同江市| 班玛县| 南城县| 徐汇区| 布拖县| 吉安县| 武威市| 灌南县| 岳阳市| 柳江县| 沙湾县| 左贡县| 楚雄市| 大方县| 平远县| 宁德市| 湖州市| 会泽县| 玉屏| 云霄县| 冕宁县|