我有一个网格视图,在此网格中,某些行具有一个称为“部门”的字段。我想要的是一个读取该字段值的代码,然后如果它等于字符串“ 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,但在RowCreatedRowDataBound事件中使用它。您可以改用SelectedRowGridView属性。

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;
    }
}

09-28 00:47