在线等!急!这样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是手动加的列.自动绑定的不算.