也谈谈动态绑定dropdownlist(1)

也谈谈动态绑定dropdownlist1

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

说来,很多的dropdownlist选项都不是固定的,是会动态改变的,一种方法是在页面上写死,改变时,直接修改页面就可以了。但是很多人是使用动态绑定的,因此dropdownlistTextValue是需要动态生成的。

首先我们来创建一个表来存放DropDownList的菜单选项:

create table DDLItem --下拉菜单选项表

(

id int Identity Primary Key, --编号

ItemName varchar(20) --菜单名称

)

       再在web.config里添加:

<appSettings>

      <add key="ConnectionString" value="server=127.0.0.1;uid=sa;password=1234;database=smsc" />

    < span>appSettings>

一个最常用的方法就是用DataSet作为数据源来绑定Dropdownlist的值。

首先我们先在页面上加上一个DropDownList和一个Button,如图所示:

页面效果图

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

源代码如下:

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

{

    ///

    /// Example1 的摘要说明。

    ///

    public class Example1 : 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);

        }

       

        ///

        /// 设计器支持所需的方法 - 不要使用代码编辑器修改

        /// 此方法的内容。

        ///

        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

         <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />SqlConnectionConn = 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

 

         //指定DropDownList使用的数据源

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

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

         DropDownList1.DataTextField = "ItemName"; //dropdownlistText的字段

         DropDownList1.DataValueField = "id";//dropdownlistValue的字段

         DropDownList1.DataBind();

 

 

      }

    }

}

效果图如下:

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />

未绑定的

 

绑定后的

 

       这个方法比较简单实用,可以灵活的指定一个表里的任意字段为DropDownListTextValue值。但是DataSet包含的其他属性太多,就是相当于一个脱机的数据库。因此说来,不是很赞成使用这个方法绑定DropDownList

阅读更多
个人分类: ASP.NET
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭