easyui datagrid合并主键值一样的记录

easyui datagrid如何将相同主键值的记录进行数据合并,显示在第一行,如下图所示

1个回答

  <script>
        function mergeData(d) {
            //return d
            var idKey = 'productid'//主键列名称
            var kv = {},attr,rowIndex,idValue
            for (var i = 0; i < d.rows.length; i++) {
                idValue = d.rows[i][idKey];
                if ((rowIndex = kv[idValue]) === undefined) {//未记录过次主键,记录执行下次循环
                    kv[idValue] = i;//记录主键值行下标
                    continue;
                }
                //存在重复主键值,合并
                for (attr in d.rows[i]) {
                    if (attr != idKey) d.rows[rowIndex][attr] += ',' + d.rows[i][attr];
                }
                d.rows.splice(i, 1);//删除重复数据行
                i--;//回退1
            }
            return d;
        }
    </script>
<table class="easyui-datagrid" title="Basic DataGrid" style="width:700px;height:250px"
data-options="singleSelect:true,collapsible:true,url:'mergedata.json',loadFilter:mergeData,method:'get'">
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!