Cómo saber si una página se descarga en ASP es un PostBack

Esto parece una pregunta común pero la búsqueda no está devolviendo nada.

Tengo el siguiente código que se ejecuta antes de que se descargue la página. El problema es que si la descarga es una devolución, no deseo enviar mi advertencia al usuario, pero no puedo descubrir cómo diferenciar entre una devolución y un usuario que navega hacia Otra página por ejemplo.

<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>

Ejecutar el script en el código que se encuentra detrás, es decir, si Page.IsPostBack, entonces set prompt no es una opción.

¿Algunas ideas?

EDITAR:

Aquí está la solución que terminé con:

<code> function DoNotPrompt() {
              prompt = false;
        }
</code>

Luego agregué esto a todos los controles donde el usuario podría hacer algo que resultara en una publicación de nuevo.

<code>OnClientClick="DoNotPrompt()
</code>

Luego verificó este indicador y solo devolvió una cadena en "descarga previa" si el usuario realmente se estaba alejando de la página, es decir, no era una devolución de datos.

También tuve que usar este código: var magicInput = document.getElementById ('__ EVENTTARGET');

<code>    if (magicInput && magicInput.value) {
        // the page is being posted back by an ASP control 
        prompt = false;
    }
</code>

La razón era que tenía un control de usuario personalizado que era un cuadro de lista y no podía agregar el método anterior. Así que usé esto para atrapar ese evento y establecer la bandera en falso.

No es la solución más elegante.

Gracias michael

Respuestas a la pregunta(3)

Su respuesta a la pregunta