2011-10-03 12 views
17

Ho un set di dati JSON locale. Voglio usare il plugin datatable di jquery per visualizzarlo. C'è qualche impostazione o configurazione all'interno del plugin datatable per visualizzare i dati? Tutto quello che posso trovare è fare chiamate AJAX e chiamate al server.come caricare la variabile JSON locale utilizzando jquery datatable

Grazie per l'aiuto.

+1

Hai mai capire questo? Vorrei anche inizializzare con una matrice locale di oggetti passati in aaData. Vedo che so che hai capito la tua domanda. L'ho provato con le proprietà mData come faresti con un set di dati sul lato server ma non ha funzionato. – Rabbi

risposta

17

È possibile fornire DataTable con dati 4 modi diversi

Nella tua situazione, ti consigliamo di utilizzare la seconda opzione (Array Javascript). Dovrai essere in grado di tradurre la forma del tuo oggetto JSON in un oggetto array.

Ecco un esempio

var json = { 
    BrowserStats : [ 
    { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 }, 
    { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 }, 
    { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 } 
    ] 
}; 

var data = jQuery.map(json.BrowserStats, function(el, i) { 
    return new [el.engine, el.browser, el.platform, el.version]; 
}); 

$('#example').dataTable({ 
    "aaData": data, 
    "aoColumns": [ 
    { "sTitle": "Engine" }, 
    { "sTitle": "Browser" }, 
    { "sTitle": "Platform" }, 
    { "sTitle": "Version"} 
    ] 
}); 
+0

Penso che il segno di uguale dopo BrowserStats dovrebbe essere un due punti e si dovrebbe eliminare la virgola finale dopo la terza riga. Grazie per la tua risposta. – Upperstage

+0

Fatto e fatto. Buona cattura – jessegavin

+0

risposta impressionante !! – ufk

1

È possibile impostare il parametro AjaxSource che punta a DataSet:

$('#example').dataTable({ 
    "sAjaxSource": 'dataset.json' 
}); 

Questo caricherà tutti i dati una volta e metterli nel DataTable. Vedi maggiori dettagli su http://www.datatables.net/examples/data_sources/ajax.html.

Jovan

0

Usa data possibilità di fornire i dati per un tavolo.

Ad esempio:

var table_data = [ 
    [ "Tiger Nixon", "System Architect", "$3,120", "2011/04/25", "Edinburgh", 5421 ], 
    [ "Garrett Winters", "Director", "$8,422", "2011/07/25", "Edinburgh", 8422 ] 
]; 

$('#example').DataTable({ 
    data: table_data 
}); 

Se i dati sono una stringa in formato JSON, si consiglia di analizzare prima con uno o $.parseJSON()JSON.parse().

Vedere this jsFiddle per codice e dimostrazione.

0

Risolvere il problema con la jessegavinanswer:

$(document).ready(function(){ 

var json = { 
    BrowserStats : [ 
    { engine: "Trident", browser: "IE 4.0", platform: "Win 95+", version: 4 }, 
    { engine: "Trident", browser: "IE 5.0", platform: "Win 95+", version: 5 }, 
    { engine: "Trident", browser: "IE 5.5", platform: "Win 95+", version: 5.5 } 
    ] 
}; 

var data = jQuery.map(json.BrowserStats, function(el, i) { 
    return [[el.engine, el.browser, el.platform, el.version]]; 
}); 

$('#example').dataTable({ 
    "aaData": data, 
    "aoColumns": [ 
    { "sTitle": "Engine" }, 
    { "sTitle": "Browser" }, 
    { "sTitle": "Platform" }, 
    { "sTitle": "Version"} 
    ] 
}); 
}); 

https://jsfiddle.net/byejn8ye/

Problemi correlati