分享一下jqgrid合併單元格在原先程式碼的基礎上進行有優化提高了效率
阿新 • • 發佈:2019-01-30
轉自http://bbs.blueidea.com/thread-3067461-1-1.html 謝謝原作者的程式碼和分享
效果:同列相鄰的單元格,值相同的,合併單元格。
優化後的程式碼:
function Merger(gridName, CellName) { //得到顯示到介面的id集合 var mya = $("#" + gridName + "").getDataIDs(); //資料總行數 var length = mya.length; //定義合併行數 var rowSpanTaxCount = 1; for (var i = 0; i < length; i += rowSpanTaxCount) { //從當前行開始比對下面的資訊 var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]); rowSpanTaxCount = 1; for (j = i + 1; j <= length; j++) { //和上邊的資訊對比 如果值一樣就合併行數+1 然後設定rowspan 讓當前單元格隱藏 var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]); if (before[CellName] == end[CellName]) { rowSpanTaxCount++; $("#" + gridName + "").setCell(mya[j], CellName, '', { display: 'none' }); } else { break; } } $("#" + gridName + "").setCell(mya[i], CellName, '', '', { rowspan: rowSpanTaxCount }); } }
呼叫方法:
gridComplete: function (data) {
Merger('listname', 'columnname');
}