2014-05-25 57 views
0

我有以下頁腳表:添加使用fnFooterCallback第二總排在jQuery的數據表

<tfoot> 
    <tr> 
     <th colspan="9">Total amount:</th> 
     <th></th> 
     <th></th> 
    </tr> 
    <tr> 
     <th colspan="9">Grand total:</th> 
     <th colspan="2"></th> 
    </tr>          
</tfoot> 

我使用jQuery的數據表來呈現從MySQL的數據和我使用的第一尾行sumarise從表中的值在兩列,假設金額和SAmount

"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) { 
    var nCells = nRow.getElementsByTagName('th'); 
    nCells[0].innerHTML = Amount; 

    var nCells = nRow.getElementsByTagName('th'); 
    nCells[1].innerHTML = SAmount; 
}); 

在第二頁腳行我想插入總量SAmount之間的差異。 如何在第二個頁腳行中插入不同的總行數?

+0

我自己找到它 var secondRow = $(nRow).next()[0]; var nCells = secondRow.getElementsByTagName('td'); – rosuandreimihai

回答

0

我發現我自己

var secondRow = $(nRow).next()[0]; 
var nCells = secondRow.getElementsByTagName('td'); 
0

感謝您的信息。如果要將第三個頁腳行添加到數據表中,則可以使用以下內容:

var thirdRow = $($(nRow).next()[0])。next()[0]; var nCells = thirdRow.getElementsByTagName('th');

+0

這不提供問題的答案。 OP僅詢問如何添加第二行。因此,你的回答應該是對相應答案的評論,而不是回答。您可以隨時對自己的帖子發表評論,一旦您擁有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),您就可以[對任何帖子發表評論](http:// stackoverflow。 COM /幫助/權限/評論)。 – honk

0

如果你想使用插件那就只能出口頁腳中的第一行,要解決這個問題,你可以修改函數_fnGetDataTablesDatadataTables.tableTools.js,用這種新的代碼改變頁腳部分出口:

if (oConfig.bFooter && dt.nTFoot !== null) { 
    aRow = []; 
    for (i = 0, iLen = dt.nTFoot.childElementCount; i < iLen; i++) { 
     for (j = 0, jLen = dt.nTFoot.children[i].childElementCount; j < jLen; j++) { 
      sLoopData = dt.nTFoot.children[i].cells[j].innerHTML.replace(/\n/g, " ").replace(/<.*?>/g, ""); 
      sLoopData = this._fnHtmlDecode(sLoopData); 
      aRow.push(this._fnBoundData(sLoopData, oConfig.sFieldBoundary, regex)); 
     } 
     aData.push(aRow.join(oConfig.sFieldSeperator)); 
     aRow = []; 
    } 
} 
0

埃爾內斯托拉莫斯的答案將拋出錯誤,如果表頁腳有任何colspans(是的,我知道datatables不支持colspans)。 Tabletools通過清除數據來處理錯誤,所以文件完全是空的。

以下解決方案與上述非常相似,但允許使用集羣。

if (oConfig.bFooter && dt.nTFoot !== null) { 
    var numRows = dt.nTFoot.rows.length; 

    for (j = 0; j < numRows; j++) { 
     aRow = []; 
     for (i = 0, iLen = dt.aoColumns.length ; i < iLen ; i++) { 
      if (aColumnsInc[i] && dt.nTFoot.rows[j].cells[i] && dt.aoColumns[i].nTf !== null) { 
       sLoopData = dt.nTFoot.rows[j].cells[i].innerHTML.replace(/\n/g, " ").replace(/<.*?>/g, ""); 
       sLoopData = this._fnHtmlDecode(sLoopData); 
       aRow.push(this._fnBoundData(sLoopData, oConfig.sFieldBoundary, regex)); 
      } 
     } 

     aData.push(aRow.join(oConfig.sFieldSeperator)); 
    } 
}