2016-06-27 69 views

回答

0

我認爲一個聰明的方式來做額外的列部分將是從查詢中檢索後修改查詢結果對象,以便您根據需要添加列和行。您可以在PostFetch回調函數,該函數將查詢結果對象作爲第一個參數做到這一點:

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++; 
    }); 
} 

唯一棘手的部分是有關修改,因爲你得到有效改變的數據集的結構的元數據的一部分,確保queryResult對象在原地更新,而不是僅僅更改其引用(queryResult = myNewQueryResult不起作用),但我提出的代碼應該做到這一點。