在项目中遇到合并单元格的问题,所以总结一下。
用的是miniUI框架,所以只谈miniUI中的单元格合并。
(1)必须添加onLoad="onLoad"
(2)需要在JS中进行单元格合并控制,实现代码如下:
function onLoad(e) {
var grid = e.sender; var marges = [
{ rowIndex: , columnIndex: , rowSpan: , colSpan: },
{ rowIndex: , columnIndex: , rowSpan: , colSpan: }
]; grid.mergeCells(marges);
}
此处的grid是你的datagrid的id;
定义一个变量数组,里面是你需要合并的单元格,其中包含4个属性,rowIndex,columnIndex分别代表行和列索引,均是从0开始算,rowSpan和colSpan分别代表要合并的行和列的宽度。
(3)最后需要调用mergeCells()方法来进行单元格合并,(2)中只是指出哪些单元格需要按照什么要求进行合并,真正的合并是步骤(3)
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
特殊情况1:需要合并动态画出的最后一行的前几个单元格(在单元格加载的时候自动进行合并)
(1)调用grid.load(param,function(){});
方法
(2)合并单元格的操作在(1)中的function中实现,代码如下:
//获取界面的所有行数
var zhs = grid.getTotalCount();
//定义要合并的单元格
var marges = [{ rowIndex: zhs-, columnIndex: , rowSpan: , colSpan: }];
//调用mergeCells()方法进行单元格的合并
grid.mergeCells(marges);
特殊情况2:在数据加载成功的时候自动合并指定的单元格
(1)调用grid.onLoadSuccess(data){}
方法
(2)在onLoadSuccess方法里面写具体的实现
$(this).datagrid('mergeCells',{
index: index,
field: 'gender',
rowspan:rowspan
});
grid.on("load", function () {
grid.mergeColumns(["rowid", "company"]);
});