我有一个网格视图,在此网格中,某些行具有一个称为“部门”的字段。我想要的是一个读取该字段值的代码,然后如果它等于字符串“ Industrial”,则该行应隐藏而不显示。
我试过了:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (e.Row.Cells[4].Text == "industrial")
e.Row.Visible = false;
}
但是它一直说(e)没有定义,也没有(.Row)这样的东西。
最佳答案
是GridViewRowEventArgs
可以访问e.Row
,但在RowCreated
和RowDataBound
事件中使用它。您可以改用SelectedRow
的GridView
属性。
var gridView = (GridView)sender;
if (gridView.SelectedRow.Cells[4].Text == "industrial")
gridView.SelectedRow.Visible = false;
更新:
要在加载页面时隐藏行,请将
for
循环放在Page_Load
事件内。protected void Page_Load(object sender, EventArgs e)
{
// ...
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (GridView1.Rows[i].Cells[4].Text == "industrial")
GridView1.Rows[i].Visible = false;
}
}