Я пытаюсь связать свой GridView во время выполнения, но я также пытаюсь избежать запуска всех событий связывания дважды.
У меня есть GridView, который заполняется из функции, которая возвращает DataTable.Я не использую ViewState в сетке по нескольким причинам.Кажется, у меня есть ситуация Catch-22:
- Если я не буду связывать сетку с помощью Page_Load не позднее, RowCommand и другие события сетки не будут срабатывать.
- Если я действительно связываю сетку в Page_Load, но я нахожусь на PostBack с помощью пейджерной ссылки, ссылки сортировки или кнопки поиска, эти обработчики событий изменят данные, и им нужно будет повторно связать их, снова выполнив весь код привязки.1008 *
Сетка запускает события DataBound, RowDataBound и RowCreated, которые могут выполнять дорогостоящие операции.Я очень не хочу вызывать их всех в Page_Load, а затем уничтожить данные и вызвать их все снова, если данные изменятся.Но я не могу избежать этой двойной обязанности, потому что в Page_Load я не знаю, было ли это событие сетки, которое изменит данные, или событие сетки, которое этого не делает.
Есть идеи?