Это не работает, потому что у вас есть вложенный цикл. Событие RowDataBound
запускается при добавлении строки в GridView. Но в событии RowDataBound вы зацикливаете все строки в GridView foreach (GridViewRow gvr in gv.Rows)
Если вы отметите gv.Rows.Count
, вы обнаружите, что в первом ряду он равен 0
, поскольку он еще не добавлен в GridView.
Но вам все равно не нужен этот цикл, поскольку у вас уже есть доступ к Lbtn_change
. Поэтому установите свойство Visible без цикла.