2011-08-19 9 views
9

C'è un modo per rilevare se quando la pagina viene caricata è un postback o solo il caricamento della pagina?Esiste una cosa come "if (! Page.IsPostBack)" in jQuery o javascript?

+0

Come in postback come Net? –

+0

@Russ yes .net. – guanome

+0

Questo è stato chiesto molto, la risposta accettata qui è un buon esempio di ciò che James suggerisce: http://stackoverflow.com/questions/59719/how-can-i-check-for-ispostback-in-javascript –

risposta

16

JavaScript non ha alcun concetto di postback. Il modo più semplice per rilevare questo lato client sarebbe avere [Inserisci qui il tuo linguaggio lato server] scrivi/imposta una variabile JavasScript sul postback.

In C#, sarebbe guardare un po 'come questo:

ClientScript.RegisterClientScriptBlock(GetType(), 
     "isPostBack", 
     String.Format("var isPostback = {0};", IsPostBack.ToString().ToLower()), 
     true); 

JavaScript:

if(isPostback) { 
    // Postback specific logic here 
} 
1

Io uso un asp: HiddenField, che prende il suo valore su Load.

Sul client è possibile ottenere il valore come stringa utilizzando jQuery, confrontarlo con 'true' risultante in un valore booleano.

HTML:

<asp:HiddenField runat="server" ID="hdnIsPostback" /> 

VB.NET (in Page Load):

Me.hdnIsPostback.Value = Me.IsPostBack 

Javascript:

var isPostback = $("#<%=hdnIsPostback.ClientID%>").val().toLowerCase() === "true";