datagrid 动态合并行
2015-11-09 16:36
288 查看
easyui datagrid 需要动态合并行,可以考虑在加载完数据之后按照文本合并
$('#datagrid').datagrid({ method:"post", loadMsg:'数据加载中请稍后……', pagination:false, rownumbers:false, resizable:true, fitColumns:true, nowrap:true, singleSelect:true, striped : true, data:data, columns:[[ // ... ]], onLoadSuccess:function (data){ console.log(data); if(data.rows.length>0){ mergeCell("datagrid","colName1,colName2"); } } }); }
加载之后对传入的列 动态合并
function mergeCell(dgId,fields){ var fieldArray=fields.split(","); var dg=$('#' + dgId); var rowCount=dg.datagrid("getRows").length; for (var i = 0; i < fieldArray.length; i++) { var begin=0; var length=0; var perTxt=""; var curTxt=""; var field = fieldArray[i]; for (var j = 0; j < rowCount; j++) { curTxt=dg.datagrid("getRows")[j][field]; if (curTxt==perTxt) { length++; }else if(length==0){ begin++; } if ((curTxt!=perTxt&&length!=0)||(curTxt==perTxt&&j==rowCount-1)) { dg.datagrid("mergeCells",{ index: begin-1, field: field, rowspan: length+1, colspan: null }); begin+=(length+1); length=0; } perTxt=curTxt; } } }
后面发现下面情况子列会跨父列合并:
1 | 2 | 4 |
1 | 2 | 5 |
1 | 3 | 5 |
希望不要合并 5,修改代码如下:
function mergeCell(dgId,fields){ var fieldArray=fields.split(","); var dg=$('#' + dgId); var rowCount=dg.datagrid("getRows").length; for (var i = 0; i < fieldArray.length; i++) { var begin=0; var length=0; var perTxt=""; var curTxt=""; var field = fieldArray[i]; for (var j = 0; j < rowCount; j++) { curTxt=""; for (var k = 0; k <= i; k++) { curTxt+=dg.datagrid("getRows")[j][fieldArray[k]]; } if (curTxt==perTxt) { length++; }else if(length==0){ begin++; } if ((curTxt!=perTxt&&length!=0)||(curTxt==perTxt&&j==rowCount-1)) { dg.datagrid("mergeCells",{ index: begin-1, field: field, rowspan: length+1, colspan: null }); begin+=(length+1); length=0; } perTxt=curTxt; } } }
相关文章推荐
- 动态合并DataGrid表头栏位
- JQuery EasyUI DataGrid动态合并(标题)单元) 一
- EasyUI-DataGrid多行动态选择性合并算法实现
- Easyui Datagrid 根据字段动态合并行
- miniui-datagrid 根据条件合并动态行
- EasyUI-DataGrid多行动态选择性合并算法实现
- 动态合并datagrid的单元格+列冻结
- DataGrid相邻行有相同内容时对指定列合并和C#可以实现DLL库的动态调用
- DataGrid能否动态合并一笔订单下面的多个交易
- EasyUI-DataGrid多行动态选择性合并算法实现
- EasyUI-DataGrid多线动态实现选择性合并
- jQuery EasyUI DataGrid根据 多个 字段动态合并单元格 ,级连合并
- [原创]WinForm的DataGrid动态装载控件
- datagrid 列头加txtbox并动态赋值,列为checkbox赋值二法,datagrid用DIV动态加滚动条。
- 跨栏合并datagrid的标头栏位
- Flex 动态datagrid的应用
- EasyUI DataGrid 动态新增 Toolbar
- Easyui datagrid+ashx 实现动态生成列
- easyui datagrid 动态修改表头
- Winform DataGrid设计三步曲之一-----DataGrid如何动态实现多种风格(TableStyle)之间的转换