Mcbaloo Ответов: 1

Как проверить, есть ли в определенном столбце gridview пустая строка, и иметь возможность выполнить действие


I have a gridview with columns Action, Sigin Date and Signout date. The "Action Column" is a button field column. For every cell in the Signout date column, i want the button in the same row with the signout date to be enabled. If there is signout date, i want the button to be disabled. How do i do this?


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

Я создал и привязал данные к своему gridview

1 Ответов

Рейтинг:
2

Vincent Maverick Durano

Конвертируйте свой ButtonField к TemplateField столбец, чтобы вы могли иметь контроль над элементами управления внутри него:

<asp:templatefield>


В RowDataBound событие, вы могли бы переключить Enabled собственность компании Button основанный на вашем требовании. В качестве быстрого примера можно привести:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
      if (e.Row.RowState != DataControlRowState.Edit){// check for RowState
              if (e.Row.RowType == DataControlRowType.DataRow){ //check for RowType
    
                     // Get the signout value
                     // Note: You may need to change the index of Cells based on the column order
                     string signoutDateString = e.Row.Cells[0].Text; 

                     if(string.IsNullOrEmpty(signoutDateString)){
                            //assuming your Action Column resides within the 5th column
                            //access the LinkButton from the TemplateField using FindControl method
                            LinkButton lb = (LinkButton)e.Row.Cells[4].FindControl("lnkSignOut"); 
                            if (lb != null){
                                 lb.Enabled = false;
                            }
                      }  
               } 
        }
}