关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 8069|回复: 3

关于jeecg链表datagrid dgtol 行合并列合并

[复制链接]
发表于 2018-5-24 08:47:23 | 显示全部楼层 |阅读模式
同题目,有没有相关的demo
或者封装的原理给科普一下
我这不知道怎么实现的
 楼主| 发表于 2018-5-24 14:27:08 | 显示全部楼层
封装了colspan rowspan 又没有对应的java代码 实现无语
 楼主| 发表于 2018-5-25 10:25:15 | 显示全部楼层
1我自己用原生的做了一遍 可以用隔类型换色实现 相对应的业务(只是为了区别)
2用原生合并单元格 代码如下
$("#auditingStandardDetailList").datagrid({                 
                  onLoadSuccess: function(data){                      //data是默认的表格加载数据,包括rows和Total
                    var mark=1;                                                 //这里涉及到简单的运算,mark是计算每次需要合并的格子数
                    for (var i=1; i <data.rows.length; i++) {     //这里循环表格当前的数据
                      if (data.rows[i]['recType'] == data.rows[i-1]['recType']) {   //后一行的值与前一行的值做比较,相同就需要合并
                        mark += 1;                                            
                        $(this).datagrid('mergeCells',{
                          index: i+1-mark,                 //datagrid的index,表示从第几行开始合并记住最开始需要合并的位置
                          field: 'recType',                 //合并单元格的区域,就是clomun中的filed对应的列
                          rowspan:mark                   //纵向合并的格数,如果想要横向合并,就使用colspan:mark
                        });
                      }else{
                        mark=1;          //一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
                      }
                    }
                  }

                });
         
 楼主| 发表于 2018-5-25 10:44:43 | 显示全部楼层
再贴一下用 rowStyler隔类型换色的代码
rowStyler="RowStyleChange"
//处理如果本行数据recType值于上一行数据recType值相等则样式不变,不相等则改变这个样式,每一行返回这个样式
var str='background-color:white';
function RowStyleChange(index,row){
        // var max=$('#auditingStandardDetailList').datagrid('getData').rows.length;
         if(index>0){
                //本行数据
                var row =$("#auditingStandardDetailList").datagrid('getRows')[index];
                //上一行数据
                var row1=$("#auditingStandardDetailList").datagrid('getRows')[index-1];                
                        if(row.recType!=row1.recType){                       
                                if(str=='background-color:#E9E9E9'){
                                   str='background-color:white'
                                }else if(str=='background-color:white'){
                                   str='background-color:#E9E9E9'
                                }
                        }                       
         }
        return str;       
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表