Как определить, является ли страница, выгруженная в ASP, PostBack
Это кажется обычным вопросом, но поиск ничего не возвращает.
У меня есть следующий код, который выполняется перед выгрузкой страницы. Проблема в том, что если выгрузка является обратной передачей, я не хочу отправлять предупреждение пользователю, но я не могу понять, как различить обратную передачу и пользователя, переходящего к другая страница, например.
<code>// This is executed before the page actually unloads $(window).bind("beforeunload", function () { if (prompt) { //prompt return true; } else { //reset our prompt variable prompt = true; } }) </code>
Запуск сценария в коде позади, то есть, если Page.IsPostBack, тогда запрос установки не является опцией.
Есть идеи?
РЕДАКТИРОВАТЬ:
Вот решение, которое я выбрал:
<code> function DoNotPrompt() { prompt = false; } </code>
Затем я добавил это ко всем элементам управления, где пользователь может сделать что-то, что приведет к обратной записи.
<code>OnClientClick="DoNotPrompt() </code>
Затем проверил этот флаг и вернул только строку в & quot; beforeunload & quot; если пользователь действительно удалялся от страницы, то есть не назад.
Я также должен был использовать этот код: var magicInput = document.getElementById ("__ EVENTTARGET");
<code> if (magicInput && magicInput.value) { // the page is being posted back by an ASP control prompt = false; } </code>
Причина в том, что у меня был пользовательский элемент управления, представляющий собой список, и я не мог добавить вышеуказанный метод. Так что использовал это, чтобы перехватить это событие и установить флаг в false.
Не самое подходящее решение.
Спасибо, Майкл