Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / как предупредить F5 (Refresh) / 5 сообщений из 5, страница 1 из 1
11.08.2006, 00:50
    #33911870
adone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как предупредить F5 (Refresh)
здрасти. вот такая ситуация: пишу значит на AJAX-e. на ОДНОЙ странице происходит манипулирование с данными (много изменений). И если нажать F5, то страница обновляется и с сервака присылается новая страница.... и те данные, которые вносил пользователь, теряются... (а данных действительно много, так как происходит динамичный переход по страницам (мнимым страницам - так как всё на самом деле на одной странице)). ну так вот: можно ли как то понять и предупредить (запретить что ли, т.е. чтоб вывести сообщение типа: "юзверь!! ты уверен??? ведь всё потеряется!!!!") что страницу пытаются обновить (это на JavaScripte) либо же хотя бы понять, что страница была обновлена (это уже на серваке - C#)? Хотя... даже просто бы понять (обязательно на клиенте), что страницу обновляют, чтоб успеть отослать данные на сервак...
заранее спасибо.
...
Рейтинг: 0 / 0
11.08.2006, 02:18
    #33911918
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как предупредить F5 (Refresh)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication5.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
		<title>WebForm1</title>
		<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
		<meta content="C#" name="CODE_LANGUAGE">
		<meta content="JavaScript" name="vs_defaultClientScript">
		<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
		<script language="javascript" id="clientEventHandlersJS">
		<!--
		
		function form_refresh() {
		   if (event.keyCode ==  116 ) 
		   {
		     event.keyCode= 0 ;
		     alert('Sorry! You can not refresh this page!');
		     return false;
		   }
		}
		//-->
		</script>
	</HEAD>
	<body MS_POSITIONING="GridLayout" onkeydown="return form_refresh();">

		<form id="Form1" method="post" runat="server">
			<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 120px; POSITION: absolute; TOP: 120px" runat="server"
				Text="Button" Width="136px" Height="24px"></asp:Button>
			<asp:TextBox id="TextBox1" style="Z-INDEX: 102; LEFT: 88px; POSITION: absolute; TOP: 64px" runat="server"
				Width="136px"></asp:TextBox></form>
	</body>
</HTML>
...
Рейтинг: 0 / 0
11.08.2006, 09:08
    #33912087
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как предупредить F5 (Refresh)
2 Relic Hunter:
А если пользователь нажмет обновить на панели инструментов???

Воспользуйтесь лучше это статьей:
http://www.microsoft.com/Rus/Msdn/publish/articles/AspCreating.mspx----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
11.08.2006, 11:22
    #33912588
qwertyytrewq
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как предупредить F5 (Refresh)
Здравствуйте, Adone, Вы писали:

A>здрасти. вот такая ситуация: пишу значит на AJAX-e. на ОДНОЙ странице происходит манипулирование с данными (много изменений). И если нажать F5, то страница обновляется и с сервака присылается новая страница.... и те данные, которые вносил пользователь, теряются... (а данных действительно много, так как происходит динамичный переход по страницам (мнимым страницам — так как всё на самом деле на одной странице)). ну так вот: можно ли как то понять и предупредить (запретить что ли, т.е. чтоб вывести сообщение типа: "юзверь!! ты уверен??? ведь всё потеряется!!!!") что страницу пытаются обновить (это на JavaScripte) либо же хотя бы понять, что страница была обновлена (это уже на серваке — C#)? Хотя... даже просто бы понять (обязательно на клиенте), что страницу обновляют, чтоб успеть отослать данные на сервак...
A>заранее спасибо.

A>
данное сообщение получено с www.gotdotnet.ru
A>ссылка на оригинальное сообщение


вешаешь свой обработчик на событие onunload или onbeforeunload.
делаешь там свои проверки надо ли выводить confirm или alert, или не надо.
и затем по необходимости отправляешь на сервер нужные данные:
если с помощью XMLHTTP, то сохраняешь эти данные где-нибудь временно на сервере, чтобы подхватить их при загрузке окна,
либо программно делать POST-запрос с этими данными (можно в виде XML если количество полей динамическое — для удобства), а на сервере забираешь их из Request.Form[].
и подставляешь эти данные в поля пользователя. и как будто ничего не изменилось.
может поможет, сам не пробывал :)
...
Рейтинг: 0 / 0
11.08.2006, 14:42
    #33913425
adone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как предупредить F5 (Refresh)
всем спаибо. совмещение "onunload" на клиенте и проверки IsPageRefresh на серваке дало свои результаты. Данные не теряются даже при закрытии браузера!!!!!!!!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / как предупредить F5 (Refresh) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]