所以我有一个<asp:Gridview>
,在我的C#文件中,我将数据源设置为某个数据库表,然后执行.DataBind()。
但是,我想基于布尔变量隐藏表中的列。
这样的事情:
gridview.Columns['Field5'].Visible = false;
或者也许:
int c = gridview.Rows.Count();
for(int i = 0; i < c; i++){
gridview.Rows['Field5'].Remove();
}
也许我不能让它变得不可见,但我确信我至少可以循环并删除与“field5”列相关的所有行。我不知道该怎么做。
是否有人可能有使用GridView类的正确链接以及如何使用所有方法,因为它不清楚,可能不是由microsoft编写的?
很抱歉,如果这很简单,互联网似乎缺少很多C#文档(或者它可能只是混杂着太多无用的ASP.net信息)。
答案 0 :(得分:6)
没问题,诀窍是你必须通过索引引用列,而不是它的名字。
grid.Columns[1].Visible = false;
答案 1 :(得分:1)
在您的情况下,您应该遍历gridview并设置要隐藏的单元格Visible=false
foreach (GridViewRow gvr in gv.Rows)
{
//here specify cell you want to hide
//also you may put any conditions
gvr.Cells[0].Visible = false; // Hide cell
}
要隐藏列,您应该这样:
//here specify column you want to hide
grv.Columns[0].Visible = false; // Hide column
另请查看此文章http://www.codeproject.com/KB/webforms/Datagrid_Col_Example.aspx
答案 2 :(得分:1)
我找到了做这样的事情的好方法。
((DataControlField)gridView.Columns
.Cast<DataControlField>()
.Where(fld => (fld.HeaderText == "Title"))
.SingleOrDefault()).Visible = false;
我在下面的链接中找到了它
答案 3 :(得分:0)
如果您只是想快速显示某些数据,但不需要以任何方式修改它,那么gridview就可以了。但是,如果您确实想要自定义它,那么它是不切实际的。在代码隐藏中动态构建表格更容易,更快捷,您可以获得所需的所有控制权。
看看这篇文章的第一个答案:How to show pop up menu from database in gridview on each gridview row items?