日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

也談?wù)剟?dòng)態(tài)綁定dropdownlist(2)

也談?wù)剟?dòng)態(tài)綁定dropdownlist(2)

更新時(shí)間:2022-05-14 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

也談?wù)剟?dòng)態(tài)綁定dropdownlist(2)



在我的《也談?wù)剟?dòng)態(tài)綁定dropdownlist(1)》的文章里,(http://blog.csdn.net/zsxfbj/archive/2004/07/08/36659.aspx)提到了的是利用dataset作為數(shù)據(jù)源來(lái)實(shí)現(xiàn)dataset的Item綁定。但是DataSet包含的內(nèi)容和結(jié)構(gòu)太多,我們只要求的是快速的綁定DropDownList的Item,而不對(duì)數(shù)據(jù)做任何的操作。所以說(shuō)用DataSet做數(shù)據(jù)源的話,是不是有些大材小用的感覺(jué)?

而且在用DataSet做為數(shù)據(jù)源的時(shí)候,我們要指定:

DropDownList1.DataTextField = "ItemName"; //dropdownlist的Text的字段

DropDownList1.DataValueField = "id";//dropdownlist的Value的字段

這樣的話,我們還要知道表的字段,這個(gè)方面不是很好。如果我們想在綁定一個(gè)叫Text為:All Item,Value為0的Item,用DataSet作為數(shù)據(jù)源時(shí)綁定會(huì)出現(xiàn)問(wèn)題,我在綁定DropDownList1時(shí),先指定上面我要加的Item項(xiàng):

DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//這里為新加代碼

DropDownList1.DataSource = dataSet.Tables["Table1"].DefaultView;

//指定DropDownList使用的表里的那些字段

DropDownList1.DataTextField = "ItemName"; //dropdownlist的Text的字段

DropDownList1.DataValueField = "id";//dropdownlist的Value的字段

DropDownList1.DataBind();

編譯后生成的頁(yè)面的代碼:

<select name=”DropDownList1” id=”DropDownList1”>

<option value=”5”>Item5</option>

<option value=”4”>Item4</option>

<option value=”3”>Item3</option>

<option value=”2”>Item2</option>

<option value=”1”>Item1</option>

</select>

新加的All Item這項(xiàng)根本沒(méi)有。如果發(fā)在后面呢?

//指定DropDownList使用的數(shù)據(jù)源

//DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//新加的代碼

DropDownList1.DataSource = dataSet.Tables["Table1"].DefaultView;

//指定DropDownList使用的表里的那些字段

DropDownList1.DataTextField = "ItemName"; //dropdownlist的Text的字段

DropDownList1.DataValueField = "id";//dropdownlist的Value的字段

DropDownList1.DataBind();

DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//新加的代碼

編譯后的頁(yè)面的代碼為:

<select name="DropDownList1" id="DropDownList1">

<option value="5">Item5</option>

<option value="4">Item4</option>

<option value="3">Item3</option>

<option value="2">Item2</option>

<option value="1">Item1</option>

<option value="0">ALL Item</option>

</select>

好像<option value="0">ALL Item</option>這項(xiàng)有了,但是是放在了最下面,這又不符合我們的一般的習(xí)慣。那么怎么辦呢?

既然,DropDownList1.Items可以Add一個(gè)new ListItem,而且DataSet做數(shù)據(jù)源太浪費(fèi),我們又不對(duì)數(shù)據(jù)做任何修改,那么我們只是Read一下就可以了。下面就看看這段代碼:

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Configuration;



namespace BindDropDownList

{

/// <summary>

/// Example2 的摘要說(shuō)明。

/// </summary>

public class Example2 : System.Web.UI.Page

{

protected System.Web.UI.WebControls.DropDownList DropDownList1;

protected System.Web.UI.WebControls.Button Button1;



private void Page_Load(object sender, System.EventArgs e)

{

// 在此處放置用戶代碼以初始化頁(yè)面

}



#region Web Form Designer generated code

override protected void OnInit(EventArgs e)

{

//

// CODEGEN:該調(diào)用是 ASP.NET Web 窗體設(shè)計(jì)器所必需的。

//

InitializeComponent();

base.OnInit(e);

}



/// <summary>

/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改

/// 此方法的內(nèi)容。

/// </summary>

private void InitializeComponent()

{

this.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Load += new System.EventHandler(this.Page_Load);



}

#endregion



private void Button1_Click(object sender, System.EventArgs e)

{

//取得Web.config里的數(shù)據(jù)庫(kù)連接字串

string ConnString = ConfigurationSettings.AppSettings["ConnectionString"];

//創(chuàng)建一個(gè)SqlConnection

SqlConnection Conn = new SqlConnection( ConnString );



string SQL_Select = "select id, ItemName from DDLItem order by id desc";

//創(chuàng)建一個(gè)SqlCommand

SqlCommand myCommand = new SqlCommand( SQL_Select, Conn );

//讀取數(shù)據(jù)記錄并綁定

myCommand.Connection.Open();

//使用DataReader讀取速度更快

SqlDataReader myReader = myCommand.ExecuteReader();

while ( myReader.Read() )

{

DropDownList1.Items.Add( new ListItem( myReader["ItemName"].ToString(),myReader["id"].ToString() ) );//增加Item

//或者這樣也能綁定,

//DropDownList1.Items.Add( new ListItem( myReader[1].ToString(),myReader[0].ToString() ) );//增加Item

//都是要在知道Sql語(yǔ)句或者數(shù)據(jù)表結(jié)構(gòu)的前提下才能這樣綁定

}



myCommand.Connection.Close();



}

}

}

編譯運(yùn)行后,效果一樣,但是更節(jié)省了系統(tǒng)的開(kāi)銷。而且我們也可以方面的添加特別的Item,比如這樣:

private void Button1_Click(object sender, System.EventArgs e)

{

DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//新加一個(gè)Item

//取得Web.config里的數(shù)據(jù)庫(kù)連接字串

string ConnString = ConfigurationSettings.AppSettings["ConnectionString"];

//創(chuàng)建一個(gè)SqlConnection

SqlConnection Conn = new SqlConnection( ConnString );



string SQL_Select = "select id, ItemName from DDLItem order by id desc";

//創(chuàng)建一個(gè)SqlCommand

SqlCommand myCommand = new SqlCommand( SQL_Select, Conn );

//讀取數(shù)據(jù)記錄并綁定

myCommand.Connection.Open();

//使用DataReader讀取速度更快

SqlDataReader myReader = myCommand.ExecuteReader();

while ( myReader.Read() )

{

DropDownList1.Items.Add( new ListItem( myReader["ItemName"].ToString(),myReader["id"].ToString() ) );//增加Item

//或者這樣也能綁定,

//DropDownList1.Items.Add( new ListItem( myReader[1].ToString(),myReader[0].ToString() ) );//增加Item

//都是要在知道Sql語(yǔ)句或者數(shù)據(jù)表結(jié)構(gòu)的前提下才能這樣綁定

}

myCommand.Connection.Close();

}

編譯后的頁(yè)面代碼為:

<select name="DropDownList1" id="DropDownList1">

<option value="0">ALL Item</option>

<option value="5">Item5</option>

<option value="4">Item4</option>

<option value="3">Item3</option>

<option value="2">Item2</option>

<option value="1">Item1</option>

</select>

我們目的就可以靈活的達(dá)到了。

所以說(shuō)使用SqlDataReader加Add ListItem可以更快的綁定DropDownList。但是DataSet也可以想這樣的綁定DropDownList:

private void Button1_Click(object sender, System.EventArgs e)

{

//取得Web.config里的數(shù)據(jù)庫(kù)連接字串

string ConnString = ConfigurationSettings.AppSettings["ConnectionString"];

//創(chuàng)建一個(gè)SqlConnection

SqlConnection Conn = new SqlConnection( ConnString );



string SQL_Select = "select id, ItemName from DDLItem order by id desc";

//構(gòu)造一個(gè)SqlDataAdapter

SqlDataAdapter myAdapter = new SqlDataAdapter( SQL_Select, Conn);

//開(kāi)始讀取數(shù)據(jù)

Conn.Open();

DataSet dataSet = new DataSet();

myAdapter.Fill( dataSet,"Table1" );

Conn.Close();



//開(kāi)始綁定DropDownList

DataTable dataTable = dataSet.Tables["Table1"];

foreach( DataRow dataRow in dataTable.Rows )

{

DropDownList1.Items.Add( new ListItem( dataRow[1].ToString(), dataRow[0].ToString() ) );

}

// //指定DropDownList使用的數(shù)據(jù)源

// //DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//新加的代碼

// DropDownList1.DataSource = dataSet.Tables["Table1"].DefaultView;

// //指定DropDownList使用的表里的那些字段

// DropDownList1.DataTextField = "ItemName"; //dropdownlist的Text的字段

// DropDownList1.DataValueField = "id";//dropdownlist的Value的字段

// DropDownList1.DataBind();

// DropDownList1.Items.Add( new ListItem( "ALL Item", "0" ) );//新加的代碼



}

當(dāng)然,怎么綁定DropDownList都是個(gè)人喜好的問(wèn)題了,這個(gè)都是屬于編程技巧的范圍了。呵呵,希望大家能一起交流編程的技巧和經(jīng)驗(yàn)。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 日本一区色 | 成年网址网站在线观看 | 亚洲人jizz日本人处 | 视频一区二区三区自拍 | 青榴社区视频在线观看免费 | 国产3344永久在线播放视频 | 久久久久久国产精品免费免 | 亚洲欧美日韩中文字幕在线一 | 国产欧美日韩精品在线 | 免费大片看黄在观看 | 五月月色开心婷婷久久合 | 2019亚洲日韩新视频 | 一区视频 | 欧美一区福利 | 在线观看91香蕉国产免费 | 亚洲天堂岛国片 | 久久精品一区二区国产 | 大片国产片日本观看免费视频 | 在线观看 亚洲 | 亚洲视屏在线 | 亚洲精品国产不卡在线观看 | 国产日韩欧美在线观看不卡 | 亚洲欧美精品一中文字幕 | 8090碰成年女人免费碰碰尤物 | 人妖三人交69欧美 | 国产美女又黄又爽又色视频网站 | 亚洲欧美成人影院 | 免费视频不卡一区二区三区 | 日韩在线视频免费播放 | 欧美激情一级二级三级在线视频 | 亚洲欧美日韩中文字幕一区二区三区 | 性猛交xxxx乱大交孕妇 | 精品亚洲一区二区三区 | 国产美女一区二区 | 波多野结衣中文字幕一区二区 | 99久久久国产精品免费牛牛四川 | 婷婷色婷婷 | 久久国产一级毛片一区二区 | 九九久久久久久久爱 | 精品综合久久久久久97超人该 | 欧美国产日韩911在线观看 |