• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        也談談動態綁定dropdownlist(2)

        也談談動態綁定dropdownlist(2)

        更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

        也談談動態綁定dropdownlist(2)



        在我的《也談談動態綁定dropdownlist(1)》的文章里,(http://blog.csdn.net/zsxfbj/archive/2004/07/08/36659.aspx)提到了的是利用dataset作為數據源來實現dataset的Item綁定。但是DataSet包含的內容和結構太多,我們只要求的是快速的綁定DropDownList的Item,而不對數據做任何的操作。所以說用DataSet做數據源的話,是不是有些大材小用的感覺?

        而且在用DataSet做為數據源的時候,我們要指定:

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

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

        這樣的話,我們還要知道表的字段,這個方面不是很好。如果我們想在綁定一個叫Text為:All Item,Value為0的Item,用DataSet作為數據源時綁定會出現問題,我在綁定DropDownList1時,先指定上面我要加的Item項:

        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();

        編譯后生成的頁面的代碼:

        <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這項根本沒有。如果發在后面呢?

        //指定DropDownList使用的數據源

        //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" ) );//新加的代碼

        編譯后的頁面的代碼為:

        <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>這項有了,但是是放在了最下面,這又不符合我們的一般的習慣。那么怎么辦呢?

        既然,DropDownList1.Items可以Add一個new ListItem,而且DataSet做數據源太浪費,我們又不對數據做任何修改,那么我們只是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 的摘要說明。

        /// </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)

        {

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

        }



        #region Web Form Designer generated code

        override protected void OnInit(EventArgs e)

        {

        //

        // CODEGEN:該調用是 ASP.NET Web 窗體設計器所必需的。

        //

        InitializeComponent();

        base.OnInit(e);

        }



        /// <summary>

        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改

        /// 此方法的內容。

        /// </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里的數據庫連接字串

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

        //創建一個SqlConnection

        SqlConnection Conn = new SqlConnection( ConnString );



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

        //創建一個SqlCommand

        SqlCommand myCommand = new SqlCommand( SQL_Select, Conn );

        //讀取數據記錄并綁定

        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語句或者數據表結構的前提下才能這樣綁定

        }



        myCommand.Connection.Close();



        }

        }

        }

        編譯運行后,效果一樣,但是更節省了系統的開銷。而且我們也可以方面的添加特別的Item,比如這樣:

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

        {

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

        //取得Web.config里的數據庫連接字串

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

        //創建一個SqlConnection

        SqlConnection Conn = new SqlConnection( ConnString );



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

        //創建一個SqlCommand

        SqlCommand myCommand = new SqlCommand( SQL_Select, Conn );

        //讀取數據記錄并綁定

        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語句或者數據表結構的前提下才能這樣綁定

        }

        myCommand.Connection.Close();

        }

        編譯后的頁面代碼為:

        <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>

        我們目的就可以靈活的達到了。

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

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

        {

        //取得Web.config里的數據庫連接字串

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

        //創建一個SqlConnection

        SqlConnection Conn = new SqlConnection( ConnString );



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

        //構造一個SqlDataAdapter

        SqlDataAdapter myAdapter = new SqlDataAdapter( SQL_Select, Conn);

        //開始讀取數據

        Conn.Open();

        DataSet dataSet = new DataSet();

        myAdapter.Fill( dataSet,"Table1" );

        Conn.Close();



        //開始綁定DropDownList

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

        foreach( DataRow dataRow in dataTable.Rows )

        {

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

        }

        // //指定DropDownList使用的數據源

        // //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" ) );//新加的代碼



        }

        當然,怎么綁定DropDownList都是個人喜好的問題了,這個都是屬于編程技巧的范圍了。呵呵,希望大家能一起交流編程的技巧和經驗。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产偷v国产偷v亚洲高清| 青青免费在线视频| 亚洲爆乳成av人在线视菜奈实| 人人公开免费超级碰碰碰视频| 中文字幕免费在线观看| 国产在线19禁免费观看| 亚洲国产天堂在线观看| 高h视频在线免费观看| 国产一级淫片免费播放电影| 亚洲精品第一国产综合精品| ww在线观视频免费观看w| 最近中文字幕mv免费高清视频7| 久久精品国产精品亚洲艾| 免费亚洲视频在线观看| 性做久久久久久免费观看| 国产A在亚洲线播放| 一边摸一边桶一边脱免费视频| 亚洲成av人片在线观看天堂无码| 亚洲av乱码一区二区三区香蕉| 另类免费视频一区二区在线观看| 免费播放特黄特色毛片| 亚洲日韩精品国产一区二区三区| 久久精品乱子伦免费| 亚洲色WWW成人永久网址| 国产亚洲成在线播放va| 久久久精品国产亚洲成人满18免费网站| 亚洲av中文无码字幕色不卡| 国产精品亚洲综合专区片高清久久久| 成人无码a级毛片免费| 国产亚洲精aa成人网站| 日本免费一区二区三区| 亚洲乱亚洲乱淫久久| 国产免费av片在线看| 亚洲欧洲精品成人久久曰| 亚洲中文字幕丝袜制服一区| 九九九精品视频免费| 久久国产亚洲精品无码| 99久久久精品免费观看国产 | 日本免费大黄在线观看| 亚洲成年网站在线观看| 毛片在线免费视频|