События страницы ASP.NET - событие нажатия кнопки наступает после привязки GridView - PullRequest
6 голосов
/ 16 февраля 2009

Мое понимание порядка событий страницы таково:

Страница: Загрузка

Элемент управления: DataBind (для GridView или любого другого)

Управление: нагрузка

Управление: нажатие (для кнопки)

Страница: PreRender

Управление: PreRender

(Есть много других - но это те, которые меня интересуют)

Здесь важно отметить, что событие нажатия кнопки наступает после события привязки gridview. Если кнопка вызывает изменение данных, GridView отображает старые данные. Я мог бы повторно привязать элемент управления в событии PreRender, но это выглядит совершенно безобразно.

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

Ответы [ 3 ]

2 голосов
/ 16 февраля 2009

Ответ был в событии Button Click, после того как данные были изменены, вызовите DataBind () на странице, чтобы GridView (и все остальное, что ему нужно) перепривязывалось. Я не осознавал, что ты можешь это сделать.

Спасибо, Ocdecio & Mufasa - я бы пометил ваши ответы как полезные, но я еще не получил повтор.

1 голос
/ 16 февраля 2009

ASP.NET по умолчанию выполняет много операций связывания и повторного связывания. Привязка после события клика нормальная.

0 голосов
/ 16 февраля 2009

Единственная причина, по которой событие нажатия кнопки происходит после привязки GridView, заключается в том, что вы запрограммировали свою страницу для этого. Я не вижу проблем в связывании элемента управления в событии PreRender, фактически это единственный способ выполнить действие после события элемента управления (например, Button onclick).

...