Sto utilizzando l'ultima versione di jQuery datatables
. Esiste una funzione di callback che posso utilizzare solo dopo che i dati sono stati caricati e visualizzati nel datatable?Come determinare quando jQuery datatable viene creato e caricato con i dati
Possiedo un datatable che sto sperimentando in IE8
. Ho 2 serie di dati che sto testando (di cui ne uso uno alla volta). Ho un array JavaScript e un insieme di dati che ottengo da una chiamata Ajax. Sto usando ASP.NET MVC 3
.
configurazione che ottiene i suoi dati da una chiamata AJAX:
$('#banks-datatable').dataTable({
"bProcessing": true,
"sAjaxSource": '/Administration/Bank/List',
"aoColumns": [
{ "sTitle": "Engine" },
{ "sTitle": "Browser" },
{ "sTitle": "Platform" },
{ "sTitle": "Version" },
{ "sTitle": "Grade" }
],
"bAutoWidth": false,
"bFilter": false,
"bLengthChange": false,
"iDisplayLength": 10
});
alert('test');
Quando il mio datatable viene caricato in questo modo si crea DataTable (senza dati) e la scatola di elaborazione visualizza e il display pop-up di avviso. A questo punto il datatable è lì ma non sono stati caricati dati nel datatable. Solo quando il popup scompare (quando faccio clic sul pulsante Ok nel popup), i dati vengono caricati nel datatable. Perchè è questo?
configurazione che ottiene i suoi dati da un array JavaScript:
var aDataSet = [
['Trident', 'Internet Explorer 4.0', 'Win 95+', '4', 'X'],
['Trident', 'Internet Explorer 5.0', 'Win 95+', '5', 'C'],
['Trident', 'Internet Explorer 5.5', 'Win 95+', '5.5', 'A'],
['Trident', 'Internet Explorer 6', 'Win 98+', '6', 'A'],
['Trident', 'Internet Explorer 7', 'Win XP SP2+', '7', 'A'],
['Trident', 'AOL browser (AOL desktop)', 'Win XP', '6', 'A'],
['Gecko', 'Firefox 1.0', 'Win 98+/OSX.2+', '1.7', 'A']
];
$('#banks-datatable').dataTable({
"aoColumns": [
{ "sTitle": "Engine" },
{ "sTitle": "Browser" },
{ "sTitle": "Platform" },
{ "sTitle": "Version" },
{ "sTitle": "Grade" }
],
"bAutoWidth": false,
"bFilter": false,
"bLengthChange": false,
"iDisplayLength": 10,
"aaData": aDataSet
});
alert('test');
DataTable viene creato e dati vengono caricati e poi fa solo il display pop-up. Questo è diverso dal primo scenario. Perché è così?
Se vado con il primo scenario, c'è un modo per determinare quando il datatable è stato creato e caricato con i dati?
Con questo controllo vorrei che fosse generale in modo che possa essere utilizzato in qualsiasi modo decido di caricarlo con i dati.
avete provato '.ajaxSucess'? – undefined
No non ancora, ma ce n'è uno più generale che posso usare a prescindere se ottiene i suoi dati da una chiamata Ajax o semplicemente da un semplice array JavaScript? –
sì, hai ragione, recupera i dati da un array, puoi provare i metodi ['promise()'] (http://api.jquery.com/promise/) e 'done()'. – undefined