如何向DataGrid中动态添加控件??

FlyingBird0001 2004-11-25 04:29:03
我想向DataGrid中动态的添加一个模板列,然后在模板列中添加控件如:TextBox
请问各位大侠该怎么做啊。

添加模板列的代码如下,可是如何向模板列中添加控件呢?
TemplateColumn tc = new TemplateColumn();
DataGird1.Columns.Add(tc);
...全文
183 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyingBird0001 2004-11-25
  • 打赏
  • 举报
回复
多谢各位了,尤其要谢谢181(181)老兄。
181 2004-11-25
  • 打赏
  • 举报
回复
可以参考下面的代码,你可以动态添加textbox控件,并指定它绑定到数据库的哪一个字段
首先,新加入一个类:GenericItem.cs

using System;

using System.Web;

using System.Data;

using System.Web.UI;

using System.Web.UI.WebControls;

public class GenericItem : ITemplate

{

private string column;

public GenericItem(string column)

{

this.column = column;

}

public void InstantiateIn(Control container)

{

TextBox txt = new TextBox();

txt.DataBinding += new EventHandler(this.BindData);

container.Controls.Add(txt);

}

public void BindData(object sender, EventArgs e)

{

TextBox txt = (TextBox)sender;

DataGridItem container = (DataGridItem)txt.NamingContainer;

txt.Text = ((DataRowView)container.DataItem)[column].ToString();

}

}

然后,在一个WebForm中加入一个DataGrid,ID为DataGrid1

再然后,在.aspx.cs中加入以下代码:

private void Page_Load(object sender, System.EventArgs e)

{

SqlConnection conn = new SqlConnection("server=icyer;uid=sa;pwd=;database=pubs;");

conn.Open();

SqlDataAdapter da = new SqlDataAdapter("select au_id, au_lname, au_fname from authors order by au_id", conn);

DataSet ds = new DataSet();

da.Fill(ds);

TemplateColumn tc = new TemplateColumn();

tc.ItemTemplate = new GenericItem("au_id");

DataGrid1.Columns.Add(tc);

DataGrid1.DataSource = ds;

if (!Page.IsPostBack)

{

DataGrid1.DataBind();

}

}

greystar 2004-11-25
  • 打赏
  • 举报
回复
tc.ItemTemplate= LoadTemplate("newtemplate.ascx");
newtemplate.ascx是一个用户控件。
yyy431706 2004-11-25
  • 打赏
  • 举报
回复
为什么要动态添加呢?
将隐藏的模板列显示出来不好吗?
贝贝壳壳 2004-11-25
  • 打赏
  • 举报
回复


public void datagrid1_ItemDataBounded(object o,DataGridItemEventArgs e)
{
假设i列为模板

if(e.Item.ItemType==ListItemType.Item ||e.Item.ItemType==ListItemType.AlternateItem)
{
e.Item.Cell[i].Controls.Add(new Button());
}

}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧