使用DataGrid动态绑定DropDownList

datagrid|动态

简单的使用模板列绑定DropDownList,初学者想必都会了,但有时候,我们要做的就是在编辑的时候想让某一列定制为DropDownList,并且根据正常情况下显示的值自动变换DropDownList中所选的值,然后保存选择后的值到数据库或XML文件,其实要做到这样的功能并不难,只要我们学会使用DataGrid的DataGrid1_ItemDataBound事件就行了,跟我来做个例子。

//检索数据库的函数
public DataSet GetZcbd()
{
try
{
DataSet ds=new DataSet();
string searchString="select id,yy,bj from zc";
da=new OleDbDataAdapter(searchString,conn);
da.Fill(ds,"yy");
return ds;
}
catch
{
return null;
}
}

//绑定DataGrid
private void BindGrid()
{
DataSet ds = new DataSet();
ds = us.GetZcbd();
if (ds!=null)
{
this.DataGrid1.DataSource = ds;
this.DataGrid1.DataBind();
}
else
{
msg.Alert("加载数据错误!",Page);
}
}

绑定好DataGrid以后,设定模板列,让其正常显示下为Label,并绑定为数据库中一ID值,在编辑状态下为DropDownList,并绑定为数据库中一Name值,我们现在要做的就是当我们选择编辑时根据Label的值自动从数据库中取出编号为ID值的姓名,并用DropDownList默认选中。(注释:为了方便大家学习,我给出一个简单代码的例子,供大家参考)

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
string current = drv["label1"].ToString();
DropDownList ddl = (DropDownList)e.Item.FindControl("ddl");
ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(current));
}
if ((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
{
Label t = (System.Web.UI.WebControls.Label)e.Item.FindControl("label1");
string current = this.BindDDL(int.Parse(t.Text));
e.Item.Cells[1].Text = current;
}
}

private string BindDDL(int ddd)
{
string sss = "";
if (ddd==1)
{
sss="张三";
return sss;
}
else
{
sss="李四";
return sss;
}
}

注释:msg为一个类似WinForm的messagebox对话框,不必理会。可以使用label.Text代替

时间: 2025-01-30 16:32:11

使用DataGrid动态绑定DropDownList的相关文章

求如何得到datagrid中DropDownList的值!代码如下

问题描述 <asp:datagridid="DataGrid1"runat="server"Height="1em"Width="100%"AllowSorting="True"OnPageIndexChanged="DataGrid1_PageIndexChanged"PageSize="25"AllowPaging="True"DataK

DataGrid和DropDownList的一些配合以及使用css定制DataGrid

css|datagrid 有的时候我们需要(1)在编辑的时候用下拉框选择,并且默认为数据库的内容(2)使用下拉框过滤数据(3)使用css统一定制DataGrid下面给出代码:数据结构:表dep:depid(标识主键),depname(学院名字)表stu:stuid(标识主键),stuname(学生名字),studepid(学院id=表dep.depid) 前台:<%@ Page language="c#" Codebehind="WebForm28.aspx.cs&qu

DataGrid 嵌套 DropdownList 的问题!

问题描述 以下是我的程序,程序执行后页面上根本就没有显示出那个DropDownList,我debug的时候程序没有运行DataShow_ItemCommand,请问这个方法是自动运行的吗?还是要调用?如果是请问怎么调用?请帮忙看看问题出在哪里?谢谢!----------------CS-------------------------------------privatevoidDataShow_ItemCommand(objectsource,System.Web.UI.WebControls

DataGrid动态绑定DataTable的问题!!急,在线等!

问题描述 先看代码:DataTabledt=newDataTable();for(inti=0;i<textname.length-1;i++)//textname是一个字符串数组{//myClass是自定义的一个类,返回DataTable类型;函数GetTable是根据参数textname数据组的值(字段名)//来获取表中某一列,//将此列返回到t1中,即t1中只有字段名为"textname[i]"的列.t1=myClass.GetTable(Field[i].ToString

【引用】DataGrid技巧大集合

datagrid|集合|技巧 引用自:http://www.cnblogs.com/iCeSnaker/archive/2004/07/31/29017.aspx DataGrid的正反双向排序http://dev.csdn.net/develop/article/26/26817.shtm DataGrid删除确认及Item颜色交替http://dev.csdn.net/develop/article/26/26768.shtm DataGrid常见解决方案(三)--在DataGrid中选择,

Using DropDownList control in DataGrid

datagrid Using DropDownList control in DataGridBy Eric Zheng When I was developing a web application couple days ago, I found some interesting things about the datagrid, I want to share them with other vs.net programmers, so I wrote this article. Thi

奇怪问题:datagrid不分页,不同页面间datagird和dropdownlist数据绑定相互影响,只显示10行数据?

问题描述 我这有4个页面,访问的是Sybase数据库中同一个数据库,但是操作的表不同.页面中有datagrid和dropdownlist控件,并且绑定数据库中的表的数据.但是不知道为什么?页面中datagrid原来分页的,但只显示10行数据,没有页码按钮.同时影响别的页面中的datagrid和dropdownlist的数据绑定也只显示10行数据.dropdownlist这个控件的绑定也只显示10条.奇怪的很?不知道为什么只显示10条数据? 解决方案 解决方案二:AllowPaging="True

datagridview 里DROUPDOWNLIST里下拉事件怎么写

问题描述 datagridview里DROUPDOWNLIST里下拉事件怎么写 解决方案 解决方案二:up解决方案三:友情up解决方案四:DataGrid中DropDownList的动态绑定和触发DropDownList事件我在写DataGrid控件中子控件事件时候,DropDownList的事件相比而言麻烦一点,在此,我简单罗列如下(我在此处为了方便这里都用DataGrid中的隐藏列存储我所要的数据):一.DropDownList的动态绑定,只需在DataGrid1_ItemDataBound

亲密接触ASP.Net

asp.net     ASP+出来都快半年了,我们站点也做了不少的介绍,但是今天飞刀我才终于有了心思来写一下关于这个ASP+的文章了.呵呵,让大家久等了.      首先我得申明,本教程适用于有一定网络编程经验的人,比如asp,PHP,CGI,JSP开发者,如果你对网络编程一点也不了解,那么您还是先去学学其它的语言,不然以下的文章您会有很多看不懂的地方.呵呵.      我们开始吧.      ASP+的运行环境      我们要学习ASP+,就先得搞一个调试环境出来.让你的"爱鸡"