Renjith_R Ответов: 1

Как отключить режим редактирования в представлении сетки на основе состояния строки.


У меня есть столбец под названием "sign Off", и если значение столбца равно" Yes", то строка представления сетки не должна редактироваться.

Что я уже пробовал:

protected void grdChangeRequirement_RowCommand(object sender, GridViewCommandEventArgs e)
   {
       GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer);
       Label myTextBox = row.FindControl("lbl_SignOff") as Label;

       if (myTextBox.ToString() == "Yes")
       {
           Label btnUpdate = row.FindControl("btn_Update") as Label;
           Label btnCancel = row.FindControl("btn_Cancel") as Label;

           btnUpdate.Visible = false;
           btnCancel.Visible = false;
       }

   }

1 Ответов

Рейтинг:
1

Karthik_Mahalingam

использовать RowDataBound[^] Событие

для label управление вам придется использовать Text свойство для чтения текстового значения
Я подозреваю, что командные кнопки - это не метки, это должна быть кнопка или элемент управления linkbutton. пожалуйста, проверьте это и измените управление литьем

void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
       {
           if (e.Row.RowType == DataControlRowType.DataRow) {
               GridViewRow row = (GridViewRow)e.Row;
               Label myTextBox = row.FindControl("lbl_SignOff") as Label;
               if (myTextBox.Text == "Yes")
               {
                   LinkButton btnUpdate = row.FindControl("btn_Update") as LinkButton;
                   LinkButton btnCancel = row.FindControl("btn_Cancel") as LinkButton;

                   btnUpdate.Visible = false;
                   btnCancel.Visible = false;
               }
           }


       }