2015-06-12 11 views
5

Ho un jsp con un tavolo e due tasti "Home" e "indietro" in essa e hanno importato jquery.datatable.js in esso.JQuery1.8 DataTable stato risparmiando sui clic di un pulsante

Al clic di "casa" nella pagina dovrebbe caricare senza alcun impaginazione o di filtro salvato. e al clic di "indietro" la tabella dovrebbe avere tutti i filtri e l'impaginazione salvati.

Ho provato a impostare il flag "bStateSave" vero durante l'inizializzazione della tabella di dati. Questo carica sempre la tabella con il filtro e l'impaginazione.

C'è un modo per caricare la tabella con lo stato salvato sul click del pulsante "indietro" e il suo stato originario al click del pulsante "Home"

risposta

3

Per DataTables 1.10:

Qui di seguito sono API functions per DataTable 1.10 legati al risparmio stato:

state()
l'ultima è stato salvato della tabella


Cancella lo stato salvato del tavolo.

state.loaded()
Ottenere lo stato tabella che è stato caricato durante l'inizializzazione.

state.save()
Attivare un salvataggio stato.

È necessario disporre dell'opzione di inizializzazione stateSave: true per abilitare il salvataggio di stato. Quindi, quando l'utente fa clic sul pulsante "Home", è possibile chiamare $('#example').DataTable().state.clear() per cancellare lo stato salvato.

Per DataTable 1.9 e precedenti:

Purtroppo non esiste un metodo API diretta per cancellare stato salvato.

È necessario avere bStateSave: true opzione di inizializzazione per abilitare il salvataggio dello stato.

Opzione 1: uso document.cookie:

Di seguito è riportato un hack destinato per cancellare cookie che contiene i dati di stato. Quando l'utente fa clic sul pulsante "Home", è necessario eseguire il codice qui sotto. IMPORTANTE: Sostituire example con l'ID della tabella.

// Reset current state 
document.cookie = name + 'SpryMedia_DataTables_' + 'example' + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 

Opzione 2: uso fnStateLoadParams:

In alternativa, si consiglia di utilizzare fnStateLoadParams funzione di callback per determinare quando per caricare o ignorare dati di stato.Determinare il caricamento della pagina se lo stato dovrebbe essere caricato o ignorata assegnando true o false rispettivamente loadStateParams variabile:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "bStateSave": true, 
    "fnStateLoadParams": function (oSettings, oData) { 
     // Disallow state loading by returning false 
     var loadStateParams = false; 

     return loadStateParams; 
    } 
    }); 
}); 
+0

Grazie per la risposta :) –

+0

Ma la mia applicazione utilizza jQuery 1.8.2, non posso cambiare la versione e hanno per implementare utilizzando tale –

+0

@swathiethiraj, 1.10 è la versione DataTables, non jQuery. Quale versione di DataTables stai usando? –