為了實現datagrid的合並單元格效果,datagrid的數據加載方式肯定是要寫在JS文件內部的。
一:在JS內部添加Datagrid數據加載方法如下:
$("#id").datagrid({ //id時文檔中datagrid的id
url:url, //URL是獲取數據的途徑,可以是靜態json文件,也可以是后台接口
queryParams:{ //queryParams是請求的參數,多用於條件查詢,可有可無
stanNum : $("#stanNum").textbox("getValue"),
}
});
此方法可以實現自動分頁效果。
沒使用合並之前的樣子:
效果實現之后的表格:
二:在Datagrid,合並單元格功能如下:
實現合並單元格,只需要調用datagrid的onLoadSuccess方法,在onLoadSuccess方法內進行合並單元格操作
$("#stanList").datagrid({
url:window.backendContextPath+"/stanInfoManage/bffzStan.do",
queryParams:{
stanNum : $("#stanNum").textbox("getValue"),
},
onLoadSuccess: function(data){ //data是默認的表格加載數據,包括rows和Total
var mark=1; //這里涉及到簡單的運算,mark是計算每次需要合並的格子數
for (var i=1; i <data.rows.length; i++) { //這里循環表格當前的數據
if (data.rows[i]['stanNum'] == data.rows[i-1]['stanNum']) { //后一行的值與前一行的值做比較,相同就需要合並
mark += 1;
$(this).datagrid('mergeCells',{
index: i+1-mark, //datagrid的index,表示從第幾行開始合並;紫色的內容需是最精髓的,就是記住最開始需要合並的位置
field: 'stanNum', //合並單元格的區域,就是clomun中的filed對應的列
rowspan:mark //縱向合並的格數,如果想要橫向合並,就使用colspan:mark
});
}else{
mark=1; //一旦前后兩行的值不一樣了,那么需要合並的格子數mark就需要重新計算
}
}
}
});
這里就涉及到一個簡單的計算了。紅色部分是調用datagrid的onLoadSuccess方法,紅色中間的綠色部分就是單元格合並的方法。
最后附上一張紅包碼,學習賺錢兩不誤,支付寶掃一掃就能領取紅包啦