#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, откуда я могу сохранить их в другом месте.