Domanda

ho questo esempio riportato di seguito:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

    <script type="text/javascript">
function test(){

if (test.initialized=='undefined'){
    test.initialized = 'true';
    }

alert(test.initialized);

};
    </script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:Button ID="btnPostBack" runat="server" Text="Post back" OnClientClick="test()" />
</asp:Content>

Quando clicco post-indietro sulla pagina, ho scoperto che il -che variabile inizializzata è definita sulla funzione itself- sta perdendo il suo valore e diventando 'undefined' di nuovo.

E 'possibile mantenere quei valori statici una volta che sono definiti e renderli influenzato da eventuali spalle un commento sulla pagina?

È stato utile?

Soluzione

Si poteva aggiungere come stringa di query o tenerli in un cookie.

Altri suggerimenti

Forse si vuole fare qualcosa di simile. Penso anche che si sta confondendo funzione di test con oggetto di prova.

var initialized = false;
function test(){
    if ( !initialized){
        initialized = true;
    }
};
            alert(initialized); // false
            test();
            alert(initialized); //true

javascript sta per essere nuovamente eseguito il postback come la pagina viene ricaricata (a meno che non si sta utilizzando i pannelli di aggiornamento).

per preservare un valore di lato client, scrivere il valore in un campo nascosto ASP utilizzando JS, e non rendere il javascript se IsPostBack è vero in modo che non ottiene sovrascritto il postback

Credo che con parziale-palo è un modo pure.

Se non è possibile, solo utilizzando Java script penso cookie possono essere un altro modo, purché non sono attivate delle dall'utente.

La mia sensazione è il modo migliore è quello di progettare la pagina in un modo che non avrei bisogno di conservarlo:)

Si potrebbe aggiungere un campo nascosto e impostare il valore di questo? Credo che in questo modo sarà conservata nel ViewState, e si può caricare il proprio valore di nuovo nella vostra variabile con qualcosa di simile:

var p = '<% = blah.Text%>';

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top