起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3200|回复: 6

[结贴] grid合并不成功。

[复制链接]

71

主题

169

帖子

549

积分

高级会员

Rank: 4

积分
549
QQ
发表于 2019-5-8 10:51:04 | 显示全部楼层 |阅读模式
我想把grid合并,但是合并出来不成功,代码如下。

Model.prototype.grid1Reload = function(event){
        var taskData = this.comp('mainData');
            var lastName='';//记录上一个单元格的值,用于比较
            var delRowArr = [];//保存被合并的行ID,最后设置隐藏
            var spanRowArr = [];//保存要设置合并的行ID,最后设置合并
            var spanNum = 0;//记录需要合并几行
            var firstRowID;//记录需要合并的行ID
            taskData.each(function(option){//在遍历时进行比较,确定合并方式
                if(lastName==option.row.val('PRJNO')){
                    delRowArr.push(option.row.getID());
                    spanNum ++;
                }else{
                    if(lastName != '' && spanNum > 1)
                        spanRowArr.push([firstRowID,spanNum]);
                    spanNum = 1;
                    lastName = option.row.val('PRJNO');
                    firstRowID = option.row.getID();
                }
            });
            if(spanNum >1){
                spanRowArr.push([firstRowID,spanNum]);
            }
            if(spanRowArr.length > 0){//设置合并
                $.each(spanRowArr,function(i,rowid){
                    var cell = event.source.getCell(rowid[0],'PRJNO');

                    $(cell).attr('rowspan',rowid[1]);

                });
            }
            if(delRowArr.length > 0){//设置隐藏
                $.each(delRowArr,function(i,rowid){
                    var cell = event.source.getCell(rowid,'PRJNO');

                    $(cell).hide();
                   
                });
            }
        };

分开.png
合并.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35880
发表于 2019-5-8 11:18:26 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

169

帖子

549

积分

高级会员

Rank: 4

积分
549
QQ
 楼主| 发表于 2019-5-8 11:32:42 | 显示全部楼层
我按照你这个写了之后还是跟原来一样。就是我图上的那种情况,合并失败,而且第二行的数据往前移了一格。我这边的代码如下


      var grid = this.comp("grid1");
        var data = grid.getData();
        var gridIDs = grid.$domNode.jqGrid('getDataIDs');
        var topRowID, colValue, spanCount = 0;
        for (var i = 0; i < gridIDs.length; i++) {
            var gridID = gridIDs[i];
            var rowID = grid.ID2DataRowID(gridID);
            var row = data.getRowByID(rowID);
            var value = row.val('PRJNO');
            
            if (colValue == value) {
                spanCount++;
                $(grid.getCell(rowID, 'PRJNO')).hide();
                $(grid.getCell(topRowID, 'PRJNO')).attr("rowspan", spanCount);
            } else {
                colValue = value;
                topRowID = rowID;
                spanCount = 1;
            }
        }
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35880
发表于 2019-5-8 11:41:30 | 显示全部楼层
那说明你的数据有问题,这两种方式都是没问题的,好多客户都在用
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

169

帖子

549

积分

高级会员

Rank: 4

积分
549
QQ
 楼主| 发表于 2019-5-8 11:54:24 | 显示全部楼层
那能不能帮告诉下我是数据有什么问题才会出现这种情况呢,我现在从数据库看是排查不出有什么不一样。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35880
发表于 2019-5-8 12:03:53 | 显示全部楼层
数据是怎么来的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

169

帖子

549

积分

高级会员

Rank: 4

积分
549
QQ
 楼主| 发表于 2019-5-8 13:34:20 | 显示全部楼层
感谢感谢,找出问题了,我那个是视图,然后在ontology文件里设置的主键是重复的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 14:00 , Processed in 0.069014 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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