也谈谈动态绑定dropdownlist(1)

也谈谈动态绑定 dropdownlist ( 1 )

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

首先我们来创建一个表来存放 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" />

appSettings >

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

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

页面效果图

源代码如下:

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

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

// 指定 DropDownList 使用的数据源

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

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

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

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

DropDownList1.DataBind();

}

}

}

效果图如下:

未绑定的

绑定后的

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus