2016-07-20 19 views
0

Ich habe Tabelle, die erstmals serverseitig gerendert wird. Ich möchte bei einigen Klickereignisdaten in der Tabelle aktualisieren.
Problem ist, wie bestimmte Json-Objekteigenschaften zu bestimmten Spalte "binden". Ich empfange JSON-Objekt mit Array von Objekten, wo nur einige Eigenschaften interessant sind.
Ich möchte
Tabellenspalte - json Objekt propertie

ID - ID
Name - Name + Nachname
Zusammenarbeit - scCooperationCollection
Skills - scSkillsCollection
Experience - ArbeitspraktikumjQuery Datatable reload Daten - JSON zu Spalten

HTML-Tabelle:
JS-Nachlade-Tabelle: http://pastebin.com/GzS8tpV6
JSON-Beispiel: http://pastebin.com/AyBSrSui

Antwort

1

Siehe columns.data oder columns.render Optionen auf, wie zu binden Quelldaten in Tabellenspalten oder erzeugen benutzerdefinierter Inhalt für eine Zelle

Sie können Quelldateneigenschaften mit gepunkteter Notation in columns.data zugreifen oder sogar Arrays mit der Notation [] verbinden. Verwenden Sie für komplexere Datenrenderings wie das Verbinden von zwei Feldern stattdessen columns.render.

Zum Beispiel:

var table = $('#example').DataTable({ 
    ajax: { 
     url: 'https://api.myjson.com/bins/3x4ql', 
     dataSrc: 'aaData' 
    }, 
    columns: [ 
     { data: "id" }, 
     { 
      data: null, 
      render: function(data, type, full, meta){ 
       return full['name'] + ' ' + full['surname']; 
      } 
     }, 
     { data: "scCooperationCollection[,].scFields.name" }, 
     { data: "scSkillsCollection[,].scFields.name" }, 
     { data: "workExperience" } 
    ]   
}); 

Siehe this jsFiddle für Code und Demonstration.

0

Sie können in zurück json Objekt durch die gewünschten Eigenschaften navigieren und diese zu Ihrem Tisch etwas wie unten binden:

table.on('xhr', function() { 
    var json = table.ajax.json(); 
    var obj = JSON.parse(json) 
    var tableJson = {"ID":obj.aaData[0].id}; 
    console.log(json); 
});