2008-11-26 2 views
1

Я создал пользовательский контроль сервера (Унаследовано от GridView).Консоль управления пользовательским сервером ASP.NET (GridView), DataBinding и Control Lifecycle

На странице GridView является DataBound для DataSet, поэтому во время разработки я не знаю, какие столбцы будут присутствовать в моем GridView.

Теперь, что я хочу сделать, добавить текстовое поле в каждую ячейку для строки заголовка GridView, и эти текстовые поля будут управлять фильтрацией столбцов. (текстовые поля добавляются с помощью метода GridView OnRowCreated).

Пока все хорошо, появляются текстовые поля, и фильтрация работает.

Проблема в том, что после каждой обратной передачи текстовое значение текстовых полей теряется. Из моих экспериментов это, похоже, связано с тем, что я слишком поздно добавляю текстовые поля в жизненный цикл Page/Control.

Как решить эту проблему, когда мне нужно будет создавать и добавлять текстовые поля на раннем этапе жизненного цикла (например, OnInit GridView), но добавление текстовых полей зависит от информации, полученной позже в жизненный цикл?

ответ

1

Почему бы не сохранить значения в ViewState и прочитать их обратно (пополнить текстовые поля) на обратной стороне?

+0

и снова нанести фильтр – Victor 2008-12-05 22:07:38

0

Вам не нужно беспокоиться о значениях текстового поля, просто их идентификатора и при их создании; (... hmmm ... или, может быть, viewstate), позаботится об остальном, пока вы создадите и «поставьте» страницу с таким же количеством текстовых полей и их соответствующими (уникальными (!)) идентификаторами.

Вы можете сделать это: Page_Init и Page_Load ... Page_Init несколько рекомендуется, но это зависит от ваших потребностей.

0

There'sa страница, которая была бы полезна: http://msdn.microsoft.com/en-us/library/ms178472.aspx Это определенно говорит, что вы должны использовать Pre_Init событие для создания YOUT управления:

PreInit: Используйте это событие для следующее :

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