Флажок в GridView

#c# #asp.net #gridview #webforms

#c# #asp.net #просмотр сетки #веб-формы

Вопрос:

я использую флажок в gridview..to для получения идентификатора флажка я использую следующий код..

     for (int i = 0; i < GridView1.Rows.Count; i  )
    {
        CheckBox chkDelete = (CheckBox)GridView1.Rows.Cells[0].FindControl("chkSelect");
        if (chkDelete != null)
        {
            if (chkDelete.Checked)
            {
                strID = GridView1.Rows.Cells[1].Text;
                idCollection.Add(strID);
            }
        }
    }
  

НО КЛЮЧЕВОЕ СЛОВО «ЯЧЕЙКИ» .. не поддерживается .. я получаю сообщение об ошибке ..»System.Web.UI.WebControls.GridViewRowCollection’ не содержит определения для ‘ячеек’ «

Комментарии:

1. Я не знаю, почему вы зацикливаете инструкцию, поскольку вы жестко кодируете значения для ячеек, таких как cells [0] и cells[1] что, если вам нужны другие строки данных

Ответ №1:

Именно так вы должны проверять

 foreach (GridViewRow grRow in grdACH.Rows)
    {
        CheckBox chkItem = (CheckBox)grRow.FindControl("checkRec");
        if (chkItem.Checked)
        {
            strID = ((Label)grRow.FindControl("lblBankType")).Text.ToString();
         }
}
  

Комментарии:

1. если (chkItem. Проверено) { } как с помощью приведенного выше кода решить, какой флажок установлен

2. Вы получите соответствующий элемент управления, и если он установлен, он обязательно покажет вам, что вы пробовали это, или же опубликуйте дизайн своей страницы aspx, чтобы я предоставил в соответствии с вашим требованием

3. Имя gridivew в его случае это значение по умолчанию GridView1

Ответ №2:

Это верно; GridViewRowCollection класс не содержит ни метода, ни свойства с именем Cells . Причина, по которой это имеет значение, заключается в том, что Rows свойство GridView элемента управления возвращает GridViewRowCollection объект, и при вызове GridView1.Rows.Cells выполняется поиск Cells свойства в GridViewRowCollection объекте, возвращаемом Row свойством.

Ответ №3:

 for (int i = 0; i < GridView1.Rows.Count; i  )
{
    CheckBox chkDelete = (CheckBox)GridView1.Rows[i].FindControl("chkSelect");
    if (chkDelete != null)
    {

        if (chkDelete.Checked)
        {
            strID = GridView1.Rows[i].Cells[1].Text;
            idCollection.Add(strID);
        }
    }
}
  

Ответ №4:

  foreach (GridViewRow rowitem in GridView1.Rows)
            {
                CheckBox chkDelete = (CheckBox)rowitem.Cells[0].FindControl("chkSelect");
                if (chkDelete != null)
                {
                    if (chkDelete.Checked)
                    {
                        strID = rowitem.Cells[1].Text;
                        idCollection.Add(strID);
                    }
                }


            }