KyLim0211 Ответов: 2

Цикл Gridview получение данных ячейки


foreach (GridViewRow row in GridView3.Rows)
      {
          if (row.RowType == DataControlRowType.DataRow)
          {
              FileUpload chkRow = (row.Cells[7].FindControl("newdoc") as FileUpload);
              if (chkRow.HasFile)
              {
                  string test = row.Cells[2].Text;
                  data = data + "" + test + ",";
              }
          }
      }

я попробовал поставить точку останова на этой линии
row.Cells[2].Text

результат, который я получаю от теста, всегда нулевой / пустой..есть идеи, почему?

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

нтггггггггггггггггггггггггггггггггггггггг

F-ES Sitecore

Используйте отладчик для проверки переменной "строка" и разверните коллекцию ячеек, чтобы увидеть, что находится в каждой ячейке и какого она типа.

Karthik_Mahalingam

после разметки

2 Ответов

Рейтинг:
2

Er. Neel Kamal

Gridview.Cells[i].Text will return value If it is a <asp:BoundField>

Если вы hvae шаблон поля . вы должны сначала найти элемент управления, а затем найти его значение . Это сработает.


KyLim0211

попробовал изменить boundfield вместо asp:TemplateField, но все равно не работает

Er. Neel Kamal

Управление загрузкой файлов теряет значение в Postback. Вы пробовали комментировать условие if, оно может не входить в условие if, потому что оно всегда ложно.

попробуйте это один раз, если это проблема, то измените вопрос, и лучше иметь поле сетки со страницы aspx, которое вы пытаетесь получить в файле cs.

Рейтинг:
1

Suvendu Shekhar Giri

Я подозреваю, что ваша колонка номер 3 не является BoundField.
Если вы хотите получить содержимое вашего BoundField, то вы можете использовать

row.Cells[2].Text

Но если это поле шаблона, то вам нужно найти элемент управления, которому назначен текст, точно так же, как вы сделали это для элемента управления FileUpload.
я.г,
Label lbl= (Label) row.FindControl("lblName");


Надеюсь, это поможет :)
Пожалуйста, дайте мне знать, если я что-то здесь упустил.


KyLim0211

попробовал изменить boundfield вместо asp:TemplateField, но все равно не работает