前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >dropdownlist控件绑定_dropdownlist控件联动

dropdownlist控件绑定_dropdownlist控件联动

作者头像
全栈程序员站长
发布于 2022-11-08 01:59:45
发布于 2022-11-08 01:59:45
1.4K0
举报

也谈谈动态绑定dropdownlist CSDN 2004年7月31日 <script src=”http://www.jaron.cn/cms-server/ArticleViewTimes.asp?id=101512″></script>阅读:6428次

说来,很多的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。

在我的《也谈谈动态绑定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都是个人喜好的问题了,这个都是属于编程技巧的范围了。呵呵,希望大家能一起交流编程的技巧和经验

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184506.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月8日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
也谈谈动态绑定dropdownlist(1)
说来,很多的dropdownlist选项都不是固定的,是会动态改变的,一种方法是在页面上写死,改变时,直接修改页面就可以了。但是很多人是使用动态绑定的,因此dropdownlist的Text和Value是需要动态生成的。
全栈程序员站长
2022/09/07
5050
数据库向DropDownList1绑定数据
string ConnString = @”Data Source=PC-20140331BMRR\SQLEXPRESS;Initial Catalog=lianxi;Integrated Security=True”; //创建一个SqlConnection SqlConnection Conn = new SqlConnection(ConnString);
全栈程序员站长
2022/09/09
3050
DropDownList1_SelectedIndexChanged-的使用
大家好,又见面了,我是你们的朋友全栈君。 怎样使当DropDownList1改变时也改变相应的DropDownList2的值? 实现二级联动。如省市联动啊。 以下有代码。 将DropDownList1的AutoPostBack属性设为true 导入命名空间 Imports System.Data Imports System.Data.SqlClient Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.Eve
全栈程序员站长
2022/09/09
2230
DropDownList 详解「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。DropDownList 控件用于创建下拉列表。DropDownList 控件中的每个可选项都是由 ListItem 元素定义的! 提示:该控件支持数据绑定! DropDownList 控件是一个下拉式的选单,功能和 RadioButtonList Web控件很类似,提供用户在一群选项中选择一个;不过RadioButtonList Web控件适合使用在较少量的选项群组项目,而DropDownList Web 控件则适合用来管理大量的选项群组项目。
全栈程序员站长
2022/09/09
3K0
实现无刷新DropDownList联动效果
在做一个文章添加功能时,想在选择大类后,自动将其所属二级小类显示出来,使用DropDownList的SelectedIndexChanged事件可以很容易实现,但每次选择后页面总要刷新一次,让人感觉很不爽。为实现DropDownList无刷新二级联动,这几天在网上找了些资料,但都无法达到我想要的效果,经过反复调试,现已基本实现了此功能,现将代码附下。
Java架构师必看
2021/03/22
1.8K0
GridView控件修改、删除示例(修改含有DropDownList控件)
GridView控件修改、删除例子,修改时含有DropDownList控件。 示例运行效果图:
Java架构师必看
2021/03/22
6320
dropdownlist控件绑定数据库_凡科可以绑定数据库吗
DropDownList1.DataSource=myReader;//myReader为ExecuteReader()的结果集 DropDownList1.DataTextField(DataValueField) = “填充在myReader中的数据集,用哪个列填充就写哪个列名就ok 了”; DropDownList1.DataBind();
全栈程序员站长
2022/11/10
9860
C# Web控件与数据感应之 Control 类
数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,诸如 ListControl 类类型控件,在我的文章《C# Web控件与数据感应之 ListControl 类》 里有详细的介绍。本文将继续介绍以与数据库提取数据并捆绑控件为例,讲解 C# 创建适用于 Control 类的更加广泛兼容的通用方法。
初九之潜龙勿用
2024/06/20
900
C# Web控件与数据感应之 Control 类
DropDownList绑定数据库「建议收藏」
//获取文本 this.DropDownList1.SelectedItem.Text;
全栈程序员站长
2022/11/08
6430
在GridView内访问特定控件
本文我将为你演示如何访问GridView中的特定控件。我们会看到怎样去访问TextBox控件,DropDownList控件以及ListBox控件。
Java架构师必看
2021/03/22
2.6K0
dropdownlist添加列表项_云痕大数据绑定怎么删
遇到问题,控件ListItem和DropDownList绑定数据库数据后selectedindex数 值始终为-1,导致无法选定索引号。 > 考虑解决办法: 一,使用!IsPostBack 二,不直接绑定,数据库数据连接到ArrayList后再用控件的 > Items.Add方法添加内容 Dim myConn As SqlConnection = New SqlConnection(“Server=localhost;” & _ “Database=Pubs;UID=sa;PWD=”) Dim myCmd As SqlCommand = New SqlCommand(“SELECT au_id,” & _ “au_lname FROM Authors”, myConn)
全栈程序员站长
2022/11/08
5050
领悟Web设计模式
摘要 本文介绍了在.NET框架下应用Web设计模式改进WebForm程序设计的一些基本方法及要点。 关键字 设计模式,ASP.NET,WebForm,MVC,Page Controller,Front Controller,Page Cache 目录 引言 经典的WebForm架构 设计模式 MVC模式下的WebForm Page Controller模式下的WebForm Front Controller模式下的WebForm Page Cache模式下的WebForm 引言 记得微软刚刚推出ASP.N
张善友
2018/01/29
1.2K0
领悟Web设计模式
asp.net中显示DataGrid控件列序号的几种方法
在aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下:
Java架构师必看
2021/03/22
1.6K0
怎么样给下拉框加载背景色
选择自PPLUNCLE的Blog部分代码:------aspx页面:  说明:下拉框必须写成数据库
Java架构师必看
2020/10/26
3920
Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
Asp.net 2.0中新增的gridview控件,是十分强大的数据展示控件,在前面的系列文章里,分别展示了其中很多的基本用法和技巧(详见< ASP.NET 2.0中Gridview控件高级技巧>)。在本文中,将继续探讨有关的技巧。
Java架构师必看
2021/03/22
2.7K0
DropDownList绑定及修改
转载于:https://www.cnblogs.com/hulang/archive/2010/12/29/1920662.html
全栈程序员站长
2022/11/03
5910
DropDownList绑定数据源的方法[通俗易懂]
web DropDownList绑定数据源的几种方式 第一种 this.ddltype.DataTextField = “btName”;//显示的值 this.ddltype.DataValueField = “btId”;//获取dropdownlist中的值 ddltype.DataSource = service.GetBusinessTypeAll(“”); this.ddltype.DataBind(); 第二种 DataTable dt_GetBusinessName = service.GetBusinessTypeAll(“”);
全栈程序员站长
2022/11/08
7830
Asp.net中DataGrid控件的自定义分页
使用实现起来虽然比较方便,但是效率不高,每次都需要读取所有页(整个记录集),而加载的只是其中一页,造成了资源的浪费,记录多又会使效率变得很低。下面通过DataGrid的自定义分页功能来减少资源使用和提
Java架构师必看
2020/10/23
1.1K0
sqlserver快速删除大批量数据_sqlserver删除数据
如何使用dropdownlist绑定数据库?首先我们要了解一些dropdownlist的一些属性。
全栈程序员站长
2022/11/09
1.3K0
C# Web控件与数据感应之 ListControl 类
数据感应也即数据捆绑,是一种动态的,Web控件与数据源之间的交互,诸如 System.Web.UI.WebControls 里的 DropDownList控件、ListBox控件,又如 System.Web.UI.HtmlControls 中的 HtmlSelect控件,均可以与数据源进行捆绑并显示。用于数据感应的数据源有多种,本文将主要介绍与数据库提取数据并捆绑控件为例,讲解C#创建一些通用方法,如何捆绑数据源到 ListControl 类类型控件上。
初九之潜龙勿用
2024/06/20
870
C# Web控件与数据感应之 ListControl 类
相关推荐
也谈谈动态绑定dropdownlist(1)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文