Есть ли разница между обновлением браузера F5 и обратной передачей ?? (asp.NET) - PullRequest
1 голос
/ 22 июля 2010

Я динамически создаю драгриды в разных строках существующей сетки данных в asp.NET

В моих сгенерированных данных есть столбец TemplateColumn (столбец CheckBox).

В моей родительской сетке данных, У меня есть шаблон столбца с флажками.когда я проверяю или снимаю значение флажка, вызывается метод check_change (autopostback установлен в true), динамически генерируемые сетки данных теряют отмеченные флажки (флажки снова не проверяются).Тем не менее, если я отмечаю какие-либо флажки дочерних (динамически генерируемых) сеток и нажимаю F5, он обновляет страницу, но все же у меня установлены флажки.

Что происходит ??Чем постбэк отличается от обновления F5 ???понимание этого может помочь мне решить мою проблему здесь: DataGrid не изменяется!

Ответы [ 3 ]

2 голосов
/ 22 июля 2010

Все просто, браузер кеширует ответ.Поэтому, если вы нажмете F5, вы будете видеть сетку с установленными флажками каждый раз.Но если вы выполняете постбэк в коде, вы заставляете браузер подключаться к серверу и публиковать данные.

Затем он будет ждать ответа от сервера и вернет любую причину для поста.-back был.

Раздражает, но так работают браузеры.Вы можете принудительно выполнить полное обновление, чем эмулировать постбэк, нажав Ctrl + F5.

Это (иногда) зависит от браузера, поскольку не все браузеры будут работать так же, как описано здесь.

Если обратная связь необходима, но вы все еще хотите сохранить статус флажка как отмеченный, я бы рекомендовал вместо этого вызов AJAX.

1 голос
/ 22 июля 2010

«Обновить» просто вызывает последний запрос на страницу. Так что если Вы только что перешли на страницу и нажали «Обновить», она просто запрашивает эту страницу. еще раз.

Постбэк - это действие на странице, которая отправляет информация возвращается на сервер.

0 голосов
/ 22 июля 2010

В идеале это PostBack, но это будет зависеть от настроек вашего браузера, если вы установите для него значение «Запросить страницу с сервера» для каждого посещения или он будет выбирать из локального кэша истории.новый запрос на страницу с сервера, и он не изменит статус Http Method(Get , Post), я имею в виду, что он не изменит статус IsPostBack для страницы.

Однако отправка формы (отправкаформа) установит для свойства IsPostBack значение true, а для page_load оно будет вызвано для обоих случаев

...