easyui------自动合并行

转载:

http://www.cnblogs.com/xiangzhong/p/5088259.html#undefined

1.引入插件

$.extend($.fn.datagrid.methods, {
    autoMergeCells : function (jq, fields) {
        return jq.each(function () {
            var target = $(this);
            if (!fields) {
                fields = target.datagrid("getColumnFields");
            }
            var rows = target.datagrid("getRows");
            var i = 0,
            j = 0,
            temp = {};
            for (i; i < rows.length; i++) {
                var row = rows[i];
                j = 0;
                for (j; j < fields.length; j++) {
                    var field = fields[j];
                    var tf = temp[field];
                    if (!tf) {
                        tf = temp[field] = {};
                        tf[row[field]] = [i];
                    } else {
                        var tfv = tf[row[field]];
                        if (tfv) {
                            tfv.push(i);
                        } else {
                            tfv = tf[row[field]] = [i];
                        }
                    }
                }
            }
            $.each(temp, function (field, colunm) {
                $.each(colunm, function () {
                    var group = this;

                    if (group.length > 1) {
                        var before,
                        after,
                        megerIndex = group[0];
                        for (var i = 0; i < group.length; i++) {
                            before = group[i];
                            after = group[i + 1];
                            if (after && (after - before) == 1) {
                                continue;
                            }
                            var rowspan = before - megerIndex + 1;
                            if (rowspan > 1) {
                                target.datagrid(‘mergeCells‘, {
                                    index : megerIndex,
                                    field : field,
                                    rowspan : rowspan
                                });
                            }
                            if (after && (after - before) != 1) {
                                megerIndex = after;
                            }
                        }
                    }
                });
            });
        });
    }
});

2.html

<table id="simpleDgId" style="height: 300px" />

3.js

var sortFlag = false;
    $(‘#simpleDgId‘).datagrid({
        url:"testController.do?datagrid",
        fitColumns:true,
        singleSelect:true,
        remoteSort: false,
        columns:[[
                  {field:"age",title:"年龄",width:25,align:‘center‘,sortable:true},
                  {field:"userName",title:"名称",width:25,align:‘center‘,sortable:true},
                  {field:"mobilePhone",title:"手机",width:25,align:‘center‘,sortable:true}
        ]],
        onSortColumn:function(sort, order){
            sortFlag = true;
            if("userName"==sort){
                $(this).datagrid("autoMergeCells",[sort]);
            }else{
                $(this).datagrid("autoMergeCells");
            }
        },
        onLoadSuccess: function(data){
            if(!sortFlag) $(this).datagrid("autoMergeCells");
        }
    });
时间: 2024-08-27 16:27:18

easyui------自动合并行的相关文章

【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行

Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Editplus 删除一行: Shift+Alt+Delete 直接删除当前行, 或:shift+Delete也成.移动一行到上一行/下一行: alt+shift+向上键(向下键)--------------------------------------------------------------

ExtJs4grid合并行

在做项目的时候,要求多行的同列数据相同进行合并,ExtJs4并没有原生的支持,网上有些方法可以供使用,它可以将我们传入的gird进行指定列相同数据行进行合并,记录如下: /**合并行*grid被格式化的表格*cols要合并的列,数组类型,如[1,2] 合并第1列和第2列*/var mergeCells = function(grid,cols){ var arrayTr=document.getElementById(grid.getId()+"-body").getElementsB

sed行处理详解 :交换行,合并行,删除行

sed行处理详解(交换行,合并行,删除行 多行合并一行:  cat xai 303728 303778 304175 304176 304261 304470 awk '{if(NR%2==0){printf $0 "\n"}else{printf "%s:",$0}}' xai  303728:303778 304175:304176 304261:304470  sed 'N;s/\n/ :/' xai  303728 :303778 304175 :30417

Reapter合并行

html文件: <asp:Repeater ID="rptEmployee" runat="server"> <HeaderTemplate> <table border="1" cellpadding="0" cellspacing="1"><tr><td>省份</td><td>城市</td></tr&g

白鹭引擎 5.2.7 新增自动合图插件、二进制和声音缓存方案功能

2018年8月13日,白鹭引擎发布5.2.7 版本.本次版本主要新增了两大功能:命令行增加自动合图插件TextureMergerPlugin,微信小游戏支持库增加二进制和声音缓存方案. 同时,本次版本还是对 5.2 版本的一次集中性缺陷修复,更新修复了大家反馈的涉及2D渲染- JavaScript.AssetsManager.微信小游戏支持库的数个BUG.在此,我们要再次特别感谢开发者们通过Egret社区.白鹭引擎小游戏开发微信群等渠道提交的BUG反馈. 5.2.7版本中新增的自动合图插件可以帮

ext表单合并行

在js里加入方法 /*** 合并Grid的数据列* @param grid {Ext.Grid.Panel} 需要合并的Grid* @param colIndexArray {Array} 需要合并列的Index(序号)数组:从0开始计数,序号也包含.* @param isAllSome {Boolean} 是否2个tr的colIndexArray必须完成一样才能进行合并.true:完成一样:false:不完全一样*/function mergeGrid(grid, colIndexArray,

EasyUI合并行

扩展一下 EasyUI   下面湿扩展EasyUI 合并行的方法 $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return jq.each(function () { var target = $(this); if (!fields) { fields = target.datagrid("getColumnFields"); } var rows = target.datagri

python EasyUI + Django--整合 CSRF 防护去除

先来张完整图: 关于Django 得CSRF  中间件      防护   GET 是不做CSRF验证得   但POST 默认验证  $.cookie('csrftoken'))    "value" 第一种方法:   在主配置文件   settings.py  中去除中间件 第二种:   无需 注销 第一种方法     #'django.middleware.csrf.CsrfViewMiddleware', 在Views.py 中引入 from django.views.decor

easyui 自动动态合并单元格

.......onLoadSuccess : function(data) { if (data.rows.length > 0) { //调用mergeCellsByField()合并单元格 mergeCellsByField("grid","supply_fullname,in_supply,in_no,in_sales"); } } function mergeCellsByField(tableID, colList) { //alert(tableI

jQuery EasyUI视频教程合集

下载地址:http://www.fu83.cn/thread-269-1-1.html 教程内容: 尚学堂科技_jqueryeasyui视频教程_白贺翔 李炎恢jQuery EasyUI视频教程全集 Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频 EasyUI入门视频教程 EasyUI进阶视频教程 原生JavaScript100例.CHM 利用 YUI Compressor压缩js和css.txt jquery+easyui培训文档.doc jQuer