easyui的bufferview用於滾動加載時,有一個問題,當固定列數據行有合併單元格的時候,在滾動的時候,滾動前有單元格和滾動後的數據有合併單元格的情況時,如
第一個單元格合併時是滾動前的數據;第二個單元格合併時是滾動後的數據,原則上,我們要的是這兩個單元格合併時一個單元格,但用bufferview的時候時,它顯示成如上圖所示了,顯然,這不是我們想要的,
查看bufferview的源碼,我們瞭解到,每滾動一次,滾動的數據行作爲獨立的表格插入到datagrid-body-inner這個class中,我們只需要修改源碼,讓其所有滾動的數據插入到一個表格,再添加到datagrid-body-inner中,
固定列的滾動數據,也是類似做法,修改如下
數據單元格合併方法如下:
function _setDefaultMearge(rows) {
var rows = $("#tt").datagrid('getRows');
var len = rows.length;
var preIndex = 0;
for (var i = preIndex; i< len; i++) {
var cityCode = rows[i].CITY_CODE;
var cityCodeNum = 1;
for (var j = i+1; j< len; j++) {
if (cityCode == rows[j].CITY_CODE) {
cityCodeNum++;
} else {
break;
}
}
$('#tt').datagrid('mergeCells', {
index: i,
field: "CITY_NAME",
rowspan: cityCodeNum
});
preIndex = cityCodeNum+i;
}
}
附下載地址: