Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление страницы 
V
    Опции темы
Bonus
Дата 3.9.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Проблема в следующем:

На странице есть редактируемый GridView. Когда я редактирую одну из записей и сохраняю изменения, а потом  жму кнопку "Обновить" своего браузера (IE 6), то выскакивает предупреждение:
"Не удается обновить страницу без повторной отправки данных". Если нажать "ОК", то произойдет повторная отправка данных, т.е. сработает сохранение записи, а мне это не надо, т.к. оно уже срабатывало...

Как избавиться от этого предупреждения?
PM MAIL   Вверх
Pankon
Дата 3.9.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 2
Всего: 5



Bonus, а зачем на "Обновить" жать? Чего хочешь добиться?
PM MAIL   Вверх
Bonus
Дата 3.9.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Мне жать не надо, но вот юзеры это сделать могут.
Я хочу добиться того, чтобы при нажатии на "Обновить" не происходило повторное сохранение записи.
PM MAIL   Вверх
Mymik
Дата 3.9.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Цитата(Bonus @  3.9.2007,  16:23 Найти цитируемый пост)
Я хочу добиться того, чтобы при нажатии на "Обновить" не происходило повторное сохранение записи. 
 Это очень распространенная ошибка начинающих девелоперов ;о). А решение очень простое. После таких операций рекомендуется делать Redirect самого на себя, что убивает повторную отправку старого пакета данных.



--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Bonus
Дата 4.9.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Заработало!
Спасибо Mymik!
PM MAIL   Вверх
Idsa
Дата 4.9.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(Mymik @  3.9.2007,  19:10 Найти цитируемый пост)
 Это очень распространенная ошибка начинающих девелоперов ;о). А решение очень простое. После таких операций рекомендуется делать Redirect самого на себя, что убивает повторную отправку старого пакета данных.

Можно подробнее?
 smile

Это сообщение отредактировал(а) Idsa - 4.9.2007, 21:25


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Mymik
Дата 4.9.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Idsa, а можно поконкретнее ???

Добавлено через 10 минут и 59 секунд
Либо я потерял возможность нормально рассказывать для двух мудреных ответчиков этого раздела. Либо эти два мудреных ответчика стали очень мудрыми и не принимают таких простых решений :о(.
Вот берите пример с новичков. Они поняли мой ответ...


Idsa, Когда ты нажимаешь Ctrl+R (аля F5) то браузер выполняет последнее совершенное им действие. Тобишь в приведенной выше проблеме это была повторная отправка POST запроса к серверу с предыдущими запросами. Возьмем к примеру наш любимый форум forum.vingrad.ru. Когда я пишу ответы и нажимаю "Отправить" я часто получаю зависшую страницу браузера FF (причину не выясняю -- мне лень). Если я нажму Ctrl+R то я повторно отправлю POST данных на сервер и в результате получиться так, что на сервере будет записано два моих ответа. А если мы делаем удаление записи из GridView (к примеру)... тут все еще хуже. Мы там храним Ключ записи (аля ID). Первый раз отправлен будет запрос и данные удаляться. Но если мы нажмем опять Ctrl+R то на самом деле будет проведена попытка повторного удаления данных. Что нам вобщем-то не нужно. 
И потому как это никому не нужно, то программисты использую Redirect браузера самого на себя. Т.е. последнее действие браузера будет редирект на эту же страницу и при нажатии Ctrl+R он выполнит не POST данных на сервер, а просто переадресацию самого на себя. Вот и все.
Скорее всего это не понятно нашим мудрецам по той причине, что они с таким никогда не сталкивались, а тестеры леньтяйничают и пропускают данный баг.

Всем спасибо, все свободны :о)


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.