2015-09-18 2 views
0

У меня есть Gridview с ItemTemplate, используя некоторые метки и 3 кнопки (Деактивировать, Удалить и Изменить), как показано на рисунке ниже:Скрыть GridView элемент (значение) основание на другое значение ячейки

enter image description here

Я хочу чтобы скрыть эти кнопки от каких-то баз пользователей на имени пользователя (ярлык UserName на Gridview), например:

  • If UserName == "some string" затем скрытьДеактивировать, Удалить и Edit кнопки

Как это сделать в коде позади RowDataBound события?

ответ

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

Вы можете получить данные строки по индексу столбца, в случае RowDataBound вам нужно проверить, если его строки данных, а не заголовок или нижний колонтитул ..etc

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