Ich denke, eine clevere Möglichkeit, die zusätzliche Spalte Teil zu tun wäre durch Ändern der Abfrage Ergebnisobjekt, nachdem es von der Abfrage abgerufen, so dass Sie die Spalten und Zeilen nach Bedarf hinzufügen. Sie können dies in der Funktion PostFetch
Rückruf tun, die das Abfrageergebnis Objekt als erstes Argument:
function yourTableComponentPostFetch(queryResult) {
// Let's say you have an array of row names
var rowNames = ['Title1', 'Title2', ... ];
// Add a "title" column for every row
queryResult.resultset.forEach(function (row, idx) {
// Push it at the beginning of the row array
row.unshift(rowNames[idx]);
});
// Change metadata description of columns to reflect this new structure
queryResult.metadata.unshift({
colName: 'Title',
colIndex: -1, // this makes sense when reindexing columns below ;)
colType: 'String'
});
// One last re-indexing of metadata column descriptions
queryResult.metadata.forEach(function (column, idx) {
// The title added column will be 0, and the rest will rearrange
column.colIndex++;
});
}
Der einzige schwierige Teil ist der Teil der Metadaten zu modifizieren, da Sie effektiv die Struktur des Datensatzes ändern, und Stellen Sie sicher, dass das queryResult-Objekt an Ort und Stelle aktualisiert wird, anstatt nur seine Referenz zu ändern (queryResult = myNewQueryResult
würde nicht funktionieren), aber der Code, den ich vorgeschlagen habe, sollte den Trick tun.