Как получить значение динамически добавляемого столбца datagridview во время обратной передачи

#asp.net #gridview #dynamic #templates

#asp.net #gridview #динамический #шаблоны

Вопрос:

Я создал единую форму с функциональностью для динамического создания представления сетки.

Я использовал концепцию «как динамически создавать столбцы шаблона в виде таблицы»

Ссылка: https://www.codeproject.com/KB/aspnet/DynamicTemplateColumn.aspx

это работает хорошо.

Я создаю элемент управления, устанавливаю другое свойство элемента управления и привязываю его к столбцам gridview.

Например, если я хочу добавить столбец текстового поля в gridview, то я создаю текстовое поле, устанавливаю другое свойство текстового поля и добавляю этот шаблон в столбец gridview.

Но проблема в том, что как только страница datagrid загружается со столбцом textbox, я ввожу некоторые данные в этот столбец.

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

Например

1) Загрузить gridview с помощью столбца текстового поля (добавлено время выполнения)

2) Добавлена одна строка в Datagridview

2) Записать данные в этот столбец (столбец текстового поля)

3) Нажмите кнопку Сохранить (для сохранения данных gridview)

4) Обратная публикация страницы (здесь в Gridview нет строк!)

При обратной отправке страницы отображается количество строк 0!

Итак, как получить значение этого столбца текстового поля?

Ответ №1:

Убедитесь, что вы получили доступ к странице в нужное время. Если вы получите к нему доступ в событии OnInit, ViewState не будет отображен обратно в вашей сетке.

Вероятно, была бы уместна загрузка страницы.

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

1. Здравствуйте, спасибо за ответ, но я проверил статус grdiview при инициализации страницы и загрузке страницы. но я получаю то же самое (0 строк). даже я явно включил просмотр статистики gridview и элементов управления, которые я динамически добавляю в столбец gridview.

2. вы уверены, что ViewState включен. Должно быть свойство на странице «EnableViewState=true» или непосредственно в элементе управления. Проверьте это.

3. Большое вам спасибо за ваши предложения. Я получил ответ. Я забыл жизненный цикл asp.net. я получил эти данные в событии «Предварительный просмотр» и «Выгрузка» gridview. Еще раз спасибо за ваше участие. 🙂

Ответ №2:

Мне кажется, что оно не добавляется в viewstate, есть ли какой-либо способ, которым вы можете его добавить?

Или, как упоминал Юри, viewstate не заполнен, имеют ли значения другие элементы управления?

Редактировать: возможно, он не добавляется в коллекцию элементов управления страницы — можете ли вы посмотреть, есть ли он там?

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

1. Здравствуйте, спасибо за ответ, но я проверил статус grdiview при инициализации страницы и загрузке страницы. но я получаю то же самое (0 строк). даже я явно включил просмотр статистики gridview и элементов управления, которые я динамически добавляю в столбец gridview.

2. Если вы используете пример кода, который вы связали, похоже, что он создает элементы управления для DynamicTemplate здесь: mt.addControl(t1, «Text», «Sno»); Я подозреваю, что вам нужно добавить его в элементы управления страницы, чтобы получить его при обратной передаче

3. Большое вам спасибо за помощь. 🙂 Я получил ответ. Я забыл жизненный цикл asp.net. я получил эти данные в событии «Предварительный просмотр» и «Выгрузка». Еще раз спасибо за ваше участие. 🙂

Ответ №3:

Я забыл жизненный цикл asp.net. я получил эти данные в событии «Предварительный просмотр» и «Выгрузка» gridview, откуда я могу сохранить их в другом месте.