47 votes

Comment puis-je vérifier IsPostBack en JavaScript?

Je dois exécuter une fonction JavaScript onLoad (), mais ne le faites que si la page a été chargée la première fois (c’est-à-dire qu’elle ne résulte pas d’une publication).

En gros, je dois vérifier IsPostBack en JavaScript.

Merci.

67voto

Jason Bunting Points 27534

Côté serveur, écrivez:

 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);
}
 

Ensuite, dans votre script qui s'exécute pour le onLoad, vérifiez l'existence de cette variable:

 if(isPostBack) {
   // do your thing
}
 


Vous n'avez pas vraiment besoin de définir la variable autrement, comme la solution de Jonathan. L'instruction if côté client fonctionnera correctement car la variable "isPostBack" sera indéfinie, ce qui donne la valeur false dans cette instruction if.

26voto

Faustin Points 177

Il existe un moyen encore plus simple de ne rien écrire dans le code: ajoutez simplement cette ligne à votre javascript:

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

ou

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

12voto

Wily AO Points 1

salut essayez ce qui suit ...

 function pageLoad (sender, args) {

alert (args._isPartialLoad);

}
 

le résultat est un booléen

5voto

md1337 Points 608

La solution ne fonctionnait pas pour moi, je devais l'adapter:

 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);
}
 

J'espère que cela t'aides.

2voto

NerdFury Points 9935

Vous pouvez mettre une entrée masquée sur la page et, après le chargement de la page, lui attribuer une valeur. Ensuite, vous pouvez vérifier ce champ. S'il était dans les données de publication, il s'agit d'une publication, sinon ce n'est pas le cas.

Deux solutions utilisant le code côté serveur (spécifique à ASP.NET) ont été envoyées en tant que réponses. Je pense qu'il convient de souligner que cette solution est agnostique sur le plan technologique, car elle utilise uniquement les fonctionnalités côté client, disponibles dans tous les principaux navigateurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X