net detectar capturar asp asp.net javascript

asp.net - detectar - ¿Cómo puedo verificar IsPostBack en JavaScript?



detectar postback javascript (10)

Esta pregunta ya tiene una respuesta aquí:

Necesito ejecutar una función de JavaScript onLoad (), pero solo lo hago si la página se cargó la primera vez (es decir, no es el resultado de una devolución de datos).

Básicamente, necesito verificar IsPostBack en JavaScript.

Gracias.


Aquí hay una forma (poner esto en Page_Load):

if (this.IsPostBack) { Page.ClientScript.RegisterStartupScript(this.GetType(),"PostbackKey","<script type=''text/javascript''>var isPostBack = true;</script>"); }

Luego solo verifica esa variable en el JS.


Crea una variable global y aplica el valor

<script> var isPostBack = <%=Convert.ToString(Page.IsPostBack).ToLower()%>; </script>

Entonces puedes hacer referencia desde otro lado


En el lado del servidor, escribe:

if(IsPostBack) { // NOTE: the following uses an overload of RegisterClientScriptBlock() // that will surround our string with the needed script tags ClientScript.RegisterClientScriptBlock(GetType(), "IsPostBack", "var isPostBack = true;", true); }

Luego, en su script que se ejecuta para onLoad, verifique la existencia de esa variable:

if(isPostBack) { // do your thing }

En realidad, no necesita configurar la variable de otra manera, como la solución de Jonathan. La sentencia if del lado del cliente funcionará bien porque la variable "isPostBack" no estará definida, lo que se evalúa como falso en esa sentencia if.


Hay una manera aún más fácil que no implica escribir nada en el código: simplemente agrega esta línea a tu javascript:

if(<%=(Not Page.IsPostBack).ToString().ToLower()%>){//Your JavaScript goodies here}

o

if(<%=(Page.IsPostBack).ToString().ToLower()%>){//Your JavaScript goodies here}


Hola, intente lo siguiente ...

function pageLoad (sender, args) { alert (args._isPartialLoad); }

el resultado es un booleano


Intente esto, en este JS podemos verificar si es posterior a la publicación o no y, en consecuencia, hacer operaciones en los bucles respectivos.

window.onload = isPostBack; function isPostBack() { if (!document.getElementById(''clientSideIsPostBack'')) { return false; } if (document.getElementById(''clientSideIsPostBack'').value == ''Y'') { ***// DO ALL POST BACK RELATED WORK HERE*** return true; } else { ***// DO ALL INITIAL LOAD RELATED WORK HERE*** return false; } }


La solución no funcionó para mí, tuve que adaptarla:

protected void Page_Load(object sender, EventArgs e) { string script; if (IsPostBack) { script = "var isPostBack = true;"; } else { script = "var isPostBack = false;"; } Page.ClientScript.RegisterStartupScript(GetType(), "IsPostBack", script, true); }

Espero que esto ayude.


Muchas opciones aquí.

Para una solución JS pura, haga que su página se envíe a sí misma, pero con el parámetro URL adicional (mypage.html? Postback = true) - puede obtener la URL de la página con window.location.href, y analizar eso usando una división o expresiones regulares para buscar tu variable

El más fácil, suponiendo que envíes de vuelta a algún tipo de lenguaje de scripting para procesar la página (php / perl / asp / cf et. Al), es hacer que hagan eco de una línea de javascript en la página estableciendo una variable:

<html> <?php if ($_POST[''myVar'']) { //postback echo ''<script>var postingBack = true;</script>''; //Do other processing } else { echo ''<script>var postingBack = false;</script>'' } ?> <script> function myLoader() { if (postingBack == false) { //Do stuff } } <body onLoad="myLoader():"> ...


Puede crear un cuadro de texto oculto con un valor de 0. Coloque el código onLoad () en un bloque if que compruebe que el valor del cuadro de texto oculto sea 0. si se trata de ejecutar el código y establecer el valor del cuadro de texto en 1.


Puede poner una entrada oculta en la página, y después de que se cargue la página, darle un valor. Luego puede verificar ese campo, si estaba en los datos de la publicación, es una devolución de datos, de lo contrario no lo es.

Hubo dos soluciones que utilizaron el código del lado del servidor (ASP.NET específico) publicado como respuestas. Creo que vale la pena señalar que esta solución es independiente de la tecnología ya que solo utiliza características del lado del cliente, que están disponibles en todos los principales navegadores.