zoukankan      html  css  js  c++  java
  • JqueryEasyUI之DataGrid扩展

    DataGrid通用合并扩展方法:

    $.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;
                                }
                            }
                        }
                    });
                });
            });
        }
    });

    调用方法:

    //加载成功后调用此方法
    function
    onLoadSuccess(data) { $(this).datagrid("autoMergeCells", ['No', 'NativePlace','填写字段名称']); }

    HTML代码:

    <table class="easyui-datagrid" title="Merge Cells for DataGrid" style="700px;height:450px"
            data-options="
                rownumbers: true,
                singleSelect: true,
                iconCls: 'icon-save',
                url: '/Home/GetEmployee',
                method: 'get',
                rownumbers:true,
                pagination:true,
                onLoadSuccess:onLoadSuccess
            ">
        <thead>
            <tr>
                <th data-options="field:'EmployeeID',300">员工编号</th>
                <th data-options="field:'No',100">登录名</th>
                <th data-options="field:'RealName',100,align:'right'">真实名字</th>
                <th data-options="field:'NativePlace',80,align:'right'">地区</th>
                <th data-options="field:'status',60,align:'center'">操作</th>
            </tr>
        </thead>
    </table>

     效果图:

  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/genesis/p/6174172.html
Copyright © 2011-2022 走看看