整理以前做的东西,这个合并单元格的问题再新浪博客也写过了。。。。。
下面这段代码是列表数据
//载入排放系数管理报表数据 function LoadEmissionReportData() { //获取计算ID var CountID = getUrlParam("CountID"); $.ajax({ type: "POST", url: "../Ashx/GetGasInventoryListInfo.ashx?type=getParamReport", data: { "CountID": "" + CountID + "" }, datatype: "text", cache: false, success: function (data) { if (data != "") { var jdata = $.parseJSON(data); $("#paramTable").datagrid({ idField: "id", //标识字段,主键 pagination: false, //是否开启分页 rownumbers: true, //行号 singleSelect: true, //是否开启单选还是多选 rownumbers: true, pageSize: , pageNumber: , title: "排放系数管理表", width: ", columns: [[ { field: , rowspan: , align: 'center' }, { field: , rowspan: , align: 'center' }, { field: , rowspan: , align: 'center' }, { field: , rowspan: , align: 'center' }, { title: }, { field: , rowspan: , align: 'center' } ], [ { field: , align: 'center' }, { field: , align: 'center' }, { field: , align: 'center' }, { field: , align: 'center' }, { field: , align: 'center' } ] ], data: jdata }); } else { AlertMsg(");//这是我们自己写的弹框js } }, error: function () { AlertMsg("); } }); $("#paramTable").datagrid({ onLoadSuccess: function (data) { ) { //调用mergeCellsByField()合并单元格 mergeCellsByField("paramTable", "ID,Ext1,SName,form"); } } }); }
合并单元格的代码
function mergeCellsByField(tableID, colList) { var ColArray = colList.split(","); //切割需要合并的列名 var tTable = $("#" + tableID); var TableRowCnts = tTable.datagrid("getRows").length;//获取整个table的行数 var tmpA; var tmpB; var PerTxt = "";//记录单元格的值 var CurTxt = ""; var alertStr = ""; PerTxt = ""; tmpA = ;//记录合并的行数 tmpB = ; //当列名为ID时 记录合并的行索引 和合并的行数 其他列则跟着从相同索引值开始合并相同的行数 //遍历表格 ; i <= TableRowCnts; i++) { if (i == TableRowCnts) { //表格为空 CurTxt = ""; } else { CurTxt = tTable.datagrid("getRows")[i]["ID"]; } if (PerTxt == CurTxt) { tmpA += ; } else { tmpB += tmpA; ; j < ColArray.length; j++) { tTable.datagrid("mergeCells", { index: i - tmpA, field: ColArray[j], //合并字段 rowspan: tmpA, colspan: null }); } tmpA = ; } PerTxt = CurTxt; } };
效果图: