基于其他单元格值隐藏gridview单元格(值)

时间:2015-09-18 15:37:40

标签: c# asp.net gridview rowdatabound

我有一个使用ItemTemplate的Gridview,使用一些标签和3个按钮(停用,删除和编辑),如下图所示:

enter image description here

我想根据用户名(Gridview上的Label UserName)隐藏某些用户的这些按钮,例如:

  • If UserName == "some string"然后隐藏 停用,删除修改按钮

如何在RowDataBound事件后面的代码中执行此操作?

2 个答案:

答案 0 :(得分:1)

是的,使用Gridview RowDataBound事件可以做到

protected void grd1_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
   {
        Label lbl=e.Row.FindControl("your cotrol Id")as Label;
       if(lbl!=null && lbl.Text.Trim()=="some string")
       {
           e.Row.FindControl("deactivate btn Id").Visible = false;
           e.Row.FindControl("delete btn Id").Visible = false;
           e.Row.FindControl("edit btn Id").Visible = false;
       }
   }
 }

答案 1 :(得分:1)

您可以按列索引获取行数据,在RowDataBound事件中,您需要检查它是否是数据行,而不是页眉或页脚..等等

if(e.Row.RowType == DataControlRowType.DataRow)
{
  if(e.Row.Cells[2].Text = "some string")
  {
    Button delete = (Button)e.Row.FindControl("control id to hide");
    delete.Visisble = false;
  }
}