Последовательность привязки ASP.NET GridView - PullRequest
1 голос
/ 03 августа 2011

Я пытаюсь связать свой GridView во время выполнения, но я также пытаюсь избежать запуска всех событий связывания дважды.

У меня есть GridView, который заполняется из функции, которая возвращает DataTable.Я не использую ViewState в сетке по нескольким причинам.Кажется, у меня есть ситуация Catch-22:

  • Если я не буду связывать сетку с помощью Page_Load не позднее, RowCommand и другие события сетки не будут срабатывать.
  • Если я действительно связываю сетку в Page_Load, но я нахожусь на PostBack с помощью пейджерной ссылки, ссылки сортировки или кнопки поиска, эти обработчики событий изменят данные, и им нужно будет повторно связать их, снова выполнив весь код привязки.1008 *

Сетка запускает события DataBound, RowDataBound и RowCreated, которые могут выполнять дорогостоящие операции.Я очень не хочу вызывать их всех в Page_Load, а затем уничтожить данные и вызвать их все снова, если данные изменятся.Но я не могу избежать этой двойной обязанности, потому что в Page_Load я не знаю, было ли это событие сетки, которое изменит данные, или событие сетки, которое этого не делает.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Попробуйте аргументы команды. Если была нажата кнопка в виде сетки, это событие будет запущено, и вы сможете обработать его соответствующим образом. Боюсь, ваш вопрос недостаточно ясен. Не могли бы вы быть более конкретным?

1 голос
/ 03 августа 2011

Проверьте, является ли запрос обратной передачей. Свяжите данные с сеткой следующим образом:

Если (! IsPostBack) ... Таким образом, вы не будете привязывать таблицу к сетке при каждом запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...