DataGrid如何嵌入(DropDownList)? http://msdn.microsoft.com/msdnmag/issues/03/08/DataGrids/default.aspxorhttp://support.microsoft.com/?id=323167 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void ItemDataBound(Object sender, DataGridItemEventArgs e) { int intCellCount=e.Item.Cells.Count; DataRowView drv = (DataRowView) e.Item.DataItem; if (drv == null) return; //数据类型 if (drv["数据类型"]!=null) { TableCell tc = e.Item.Cells[7]; tc.Attributes["Width"]="50px"; string _sql="SELECT DISTINCT a.coldatatype "+ "FROM sys_FlexHeadCtl as a "+ "WHERE (((a.coldatatype)<>'')) "+ "ORDER BY a.coldatatype"; if(oleCn.State!=ConnectionState.Open) { oleCn.ConnectionString=strSqlCon; oleCn.Open(); } DataSet ds = new DataSet(); OleDbDataAdapter oleDa=new OleDbDataAdapter(); oleCmd.Connection=oleCn; oleCmd.CommandText=_sql; oleCmd.CommandType=CommandType.Text; oleDa.SelectCommand=oleCmd; oleDa.Fill(ds,"myDDL"); DropDownList ddl=new DropDownList(); ddl.BorderStyle=BorderStyle.None; ddl.DataTextField="coldatatype"; //ddl.DataValueField="coldatatype"; ddl.Style.Add("BACKGROUND-COLOR","transparent"); ddl.DataSource=ds.Tables[0]; ddl.DataBind(); tc.Controls.Add(ddl); ListItem li=new ListItem("",""); ddl.Items.Insert(0,li); if((drv["数据类型"]).ToString()!="") ddl.SelectedIndex=ddl.Items.IndexOf(ddl.Items.FindByText((drv["数据类型"]).ToString())); else ddl.SelectedIndex=0; } } 加入模板列,然后更改模板列属性为DropDownList就可以了 加入模板列,然后编辑模板列,把DropDownList加进去。 假如模块列解决不了啊,是在WINFORM中的,怎么解决啊,说具体点好吗。谢谢关注中。 在 WinForm 中,一个比较简单的解决办法就是你自己扩展一个DataGridColumnStyle,嵌入你想要的控件。具体的,你可以参见 DataGridColumnStyle 类的帮助,你必须重写几个函数。.NET Framework 自带的 DataGridBoolColumn 及 DataGridTextBoxColumn 就是从这个类继承而来的。有一段时间在网上曾经看到过一个简单的例子,就是在其中加入ComboBox的。你可以搜索一下。 C#中,能不能让IDE强制提醒我可能抛异常的语句? 新手求教:visual studio2010的picturebox 程序优化的问题 请问我用VS2005做asp.net网站的时候,如何才能使用UTF-8? 调用非托管dll的问题 非常感谢,大家分别推荐一下C#和 j2ee webservice方面的好书? 高手请指教 救命!100分求满意的解答!关于C# 处理sockets的 帮忙看看这段代码为什么不能保存我在DataGrid和WindowsForm的TextBox里修改的值? 窗体登陆 怎样把字符串"2003.02.30"转换为DateTime 如何在datagrid指定日期显示的格式
{
int intCellCount=e.Item.Cells.Count;
DataRowView drv = (DataRowView) e.Item.DataItem;
if (drv == null) return;
//数据类型
if (drv["数据类型"]!=null)
{
TableCell tc = e.Item.Cells[7];
tc.Attributes["Width"]="50px";
string _sql="SELECT DISTINCT a.coldatatype "+
"FROM sys_FlexHeadCtl as a "+
"WHERE (((a.coldatatype)<>'')) "+
"ORDER BY a.coldatatype";
if(oleCn.State!=ConnectionState.Open)
{
oleCn.ConnectionString=strSqlCon;
oleCn.Open();
}
DataSet ds = new DataSet();
OleDbDataAdapter oleDa=new OleDbDataAdapter();
oleCmd.Connection=oleCn;
oleCmd.CommandText=_sql;
oleCmd.CommandType=CommandType.Text;
oleDa.SelectCommand=oleCmd;
oleDa.Fill(ds,"myDDL");
DropDownList ddl=new DropDownList();
ddl.BorderStyle=BorderStyle.None;
ddl.DataTextField="coldatatype";
//ddl.DataValueField="coldatatype";
ddl.Style.Add("BACKGROUND-COLOR","transparent");
ddl.DataSource=ds.Tables[0];
ddl.DataBind();
tc.Controls.Add(ddl);
ListItem li=new ListItem("","");
ddl.Items.Insert(0,li);
if((drv["数据类型"]).ToString()!="")
ddl.SelectedIndex=ddl.Items.IndexOf(ddl.Items.FindByText((drv["数据类型"]).ToString()));
else
ddl.SelectedIndex=0;
}
}
关注中。
.NET Framework 自带的 DataGridBoolColumn 及 DataGridTextBoxColumn 就是从这个类继承而来的。
有一段时间在网上曾经看到过一个简单的例子,就是在其中加入ComboBox的。你可以搜索一下。