Определите, является ли обратный вызов page_load или itemcommand - PullRequest
0 голосов
/ 13 апреля 2009

У меня есть список пользователей в левой части моей страницы в сетке данных, и я хочу загрузить div в правой части моей страницы с информацией о пользователях, по которым щелкнули. Я предполагаю, что сделаю загрузку div в событии itemcommand, но как мне тогда обработать загрузку страницы? Нужно ли знать, что вызвало обратную передачу? Нужно ли перезагрузить сетку на page_load?

Ответы [ 2 ]

1 голос
/ 13 апреля 2009

как мне тогда обрабатывать загрузку страницы?

Каждый постбэк использует новый экземпляр класса вашей страницы и полностью перестраивает страницу. Единственное, что отличается, это то, что некоторые элементы управления могут быть предварительно заполнены через ViewState. Вам не нужно повторять загрузку для любого из этих элементов управления.

Нужно ли знать, что вызвало обратную передачу?

ASP.Net позаботится об этом и запустит событие. Вам нужно только знать, является ли это постбэком, а может даже и не так (см. Следующую часть).

Нужно ли перезагрузить сетку и на page_load?

Да. Ну вроде. Вам необходимо повторно отобразить HTML для сетки в браузере. Хорошей новостью является то, что шансы на то, что данные вашей сетки уже находятся в viewstate, и это произойдет автоматически. Вам не нужно беспокоиться об этом самостоятельно.

Однако во многих случаях вы можете обнаружить, что лучше отключить режим просмотра для сеток и перезагрузить их на каждом постбеке в любом случае. Это связано с тем, что ViewState - это просто скрытый вход на вашей странице, который должен публиковаться (загружаться) на сервер при каждом запросе. Большинство интернет-пользователей имеют очень ограниченную пропускную способность при загрузке, поэтому большой ViewState может сделать ваш сайт вялым, даже если ваш сервер почти не потеет.

В зависимости от вашей ситуации вы могли бы добиться большего, если обменять некоторую избыточную производительность сервера на отзывчивость сайта, отключив ViewState в некоторых элементах управления. В этом случае вы всегда будете загружать сетку, и вам больше не нужно заботиться о том, является ли запрос обратной передачей.

В отличие от этого, если это сетевое приложение типа int ra , в котором пользователи обычно имеют локальные подключения Ethernet к вашему веб-серверу, трудно превзойти ViewState для балансировки скорости отклика и производительности сервера.

0 голосов
/ 13 апреля 2009

Исключить привязку к сетке при проверке! IsPostBack

if(!IsPostBack){
   // Bind the Grid
}

Для команды div item вы получаете извлечение значения, которое выбирается из сетки, и загружаете информацию о пользователе.

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

...