2009-12-17 20 views
6

Ho provato questo e il motivo per cui ho posto la domanda è che sembra che stia facendo cose diverse per tavoli diversi.Utilizzando il plugin jQuery DataTables, fnAddData() aggiunge righe all'inizio o alla fine di una tabella html?

Impossibile trovare alcuna documentazione se è configurabile o meno. Avrei pensato che avrebbe aggiunto le righe in fondo, ma ho alcuni esempi in cui vedo che aggiunge righe in alto o anche in mezzo a volte. Sembra abbastanza casuale.

Qualche idea?

risposta

12

Ho guardato il codice sorgente e fnAddData chiama il metodo interno _fnAddData, che aggiunge una riga e, se ha successo, restituisce il suo indice nella tabella. _fnAddData aggiunge la nuova riga in basso (l'indice della nuova riga è uguale al numero delle righe nella tabella).

Tuttavia, fnAddData ha un parametro facoltativo per ridisegnare la tabella tenendo conto delle varie funzionalità abilitate. Questo parametro è impostato su true e questo è probabilmente il comportamento "casuale".

5

Navigazione attraverso la fonte di Datatable, come spiegato da kgiannakaki. Il metodo aggiungerà tutte le nuove righe di dati alla fine della tabella come dovrebbe.

Il motivo per il comportamento "casuale" è che ogni volta che viene aggiunta una nuova riga, il metodo eseguirà un "ridisegno" dell'intera tabella, se non diversamente specificato. In questo modo, la tabella viene eseguita attraverso più funzionalità come filtraggio/ordinamento, ecc. Ecc. E completamente riscritta sulla pagina. In sostanza, ho intenzione di indovinare che stai aggiungendo pezzi casuali di dati in nuove righe che potrebbero creare l'effetto "casuale", ogni volta che viene aggiunta una nuova riga.

È possibile disabilitare facilmente il ridisegno della tabella aggiungendo un secondo parametro nella chiamata fnAddData che deve essere impostata su false.

$(this).fnAddData(data, false); 

Se il problema persiste avrei un bug di questo problema, come loro c'è altra ragione per questo comportamento.

4

Per disattivare smistamento, in modo che una nuova riga verrà aggiunto alla parte inferiore di una tabella, aggiungere

"bSort": false 

al (la parte superiore) vostra inizializzazione DataTable.

Problemi correlati