在线等!急!这样GridView的OnRowDataBound事件怎么了?
我的目的是想要在GridView的每个表头项添加一个CheckBox,代码如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
{
Literal l = new Literal();
CheckBox chk = new CheckBox();
l.Text = e.Row.Cells[i].Text;
e.Row.Cells[i].Controls.Add(l);
e.Row.Cells[i].Controls.Add(chk);
}
}
}
前台也注册了OnRowDataBound这个事件,但是编译后并没有任何反应。后来我又测试了一下,
把第一列的表头项添加一个CheckBox,代码如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
Literal l = new Literal();
CheckBox chk = new CheckBox();
l.Text = e.Row.Cells[0].Text;
e.Row.Cells[0].Controls.Add(l);
e.Row.Cells[0].Controls.Add(chk);
}
}
运行后在第一列的表头项成功添加了一个CheckBox。
请大家看看这到底是什么原因。。。谢谢大家了
------解决方案--------------------for (int i = 0; i < GridView1.Columns.Count; i++)
==>
for (int i = 0; i < e.Row.Cells.Count; i++)
------解决方案--------------------跟踪一下
.Row.Cells.Count
------解决方案--------------------不加id也应该生成的.
------解决方案--------------------for (int i = 0; i < GridView1.Columns.Count; i++)这个问题
------解决方案--------------------GridView1.Columns
是手动加的列.自动绑定的不算.