首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问一个gridView隐藏列的有关问题?困扰小弟我一段时间了

2012-04-24 
问一个gridView隐藏列的问题?困扰我一段时间了protected void Button6_Click(object sender, EventArgs e)

问一个gridView隐藏列的问题?困扰我一段时间了
protected void Button6_Click(object sender, EventArgs e)
  {
  GridView1.Columns[1].Visible = true;
  }


手动从数据绑定了一个dataset,几乎没设置什么事件或属性,好象就设了分页,行头自动生成编辑删除的按钮吧。

我想通过点击Button6隐藏第二列。但是会报错:索引超出范围。必须为非负值并小于集合大小。
参数名: index 
想不通啊,以前是gridview配置一个sqldatasource,执行类似的代码没问题。

有高手在吗???

再问一个,手动代码绑定的gridview如何把列转换成模板列?
我.net新手,别见怪啊…


[解决办法]
代码绑定的确会多出许多事来!
第一个问题Button的click事件隐藏某一列:例如隐藏第1列:
protected void Button6_Click(object sender, EventArgs e)
{
GridView1.HeaderRow.Cells[1].Visible = false;//隐藏表头
for (int i = 0; i < GridView1.Rows.Count; i++)//隐藏数据行
{
GridView1.Rows[i].Cells[1].Visible = false;
}
}

[解决办法]
for (int i = 0; i < GridView1.HeaderRow.Cells.Count; i++)
{
............
}
其中GridView1.HeaderRow.Cells.Count就是列的数量
[解决办法]
动态模板列使用ITemplate
protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[1].Visible = false;
e.Row.Cells[2].Visible = false;
}
}

[解决办法]
当你GridView1.Columns[1].Visible = true;隐藏了Columns[1]一列后,Columns.Count就会减一;原先的Columns[2]已经是Columns[1]了

热点排行