3 回答
TA贡献1776条经验 获得超12个赞
GridView.Columns.Count当GridView的AutoGenerateColumns属性设置为时,它将始终为0 true(默认值为true)。
您可以显式声明列并将AutoGenerateColumns属性设置为false,也可以在后面的代码中使用它:
GridView.Rows[0].Cells.Count
一旦绑定了GridView数据即可获取列数,或者这样:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[index].Visible = false;
}
使用GridView的RowDataBound事件将列设置为不可见。
TA贡献1829条经验 获得超7个赞
您可以通过查询datacontrolfield集合以获取所需的列标题文本并将其可见性设置为true来隐藏特定的列。
((DataControlField)gridView.Columns
.Cast<DataControlField>()
.Where(fld => (fld.HeaderText == "Title"))
.SingleOrDefault()).Visible = false;
TA贡献1851条经验 获得超5个赞
我看到的一些答案说明了如何使单元格的内容不可见,而不是如何隐藏整个列,这是我想要做的。
如果您有AutoGenerateColumns = "false"并且实际上BoundField要用于要隐藏的列,则Bala的答案很流畅。但是,如果您使用TemplateField该列,则可以处理该DataBound事件并执行以下操作:
protected void gridView_DataBound(object sender, EventArgs e)
{
const int countriesColumnIndex = 4;
if (someCondition == true)
{
// Hide the Countries column
this.gridView.Columns[countriesColumnIndex].Visible = false;
}
}
这可能不是OP所寻找的,但这是我发现自己问同样的问题时所寻找的解决方案。
- 3 回答
- 0 关注
- 597 浏览
添加回答
举报