Ho diverse tabelle su una singola pagina utilizzando dataTables. Ciascuno ha bisogno di avere il proprio 'sAjaxSource'. Non riesco a capire esattamente come farlo. Ecco il codice minimo che ho:Più DataTable sulla stessa pagina con diverse fonti Ajax
var oTable = $('.datatable').dataTable({
"bProcessing": true,
"sAjaxSource": "/ajax/function",
"bSort": false,
"fnDrawCallback": function() {
//some click events initilized here
}
});
Questa è fondamentalmente la configurazione dell'osso nudo. Ogni tabella come classe datatable e un ID univoco. Ma non sono sicuro di come modificare AjaxSource, in base a una tabella specifica.
Grazie!
EDIT:
Ecco quello che ho finito per fare:
$('.datatable').each(function(index){
$('#'+$(this).attr('id')).dataTable({
"bProcessing": true,
"sAjaxSource": $(this).children('caption').html(),
"bSort": false,
"fnDrawCallback": function() {
}
});
});
all'interno della tabella ho messo un tag didascalia che è nascosto dal CSS e contiene l'URL di origine Ajax. Itera su ogni istanza e prende l'url.
Questo sembra funzionare fino ad ora!
Sì, probabilmente, ma non voglio usare un'inizializzazione completamente nuova per ognuno, diventerà piuttosto complicato abbastanza rapidamente. – dzm
Bene, è piuttosto complicato avere un'inizializzazione separata per ogni datatable senza avere un'inizializzazione separata per ogni datatable, che è ciò che stai chiedendo. Puoi provare ad avere un'inizializzazione comune basata sulla classe, quindi separare, inizializzazioni più piccole con solo l'attributo sorgente specificato, che permetterà di non ripetere il codice comune. –
Ho appena aggiornato il mio post con una soluzione che sembra funzionare, cosa ne pensi? vedi qualche problema? – dzm