zoukankan      html  css  js  c++  java
  • easyui-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;
    }
    }
    }
    });
    });
    });
    }
    });

  • 相关阅读:
    cmd git常用命令使用
    vue2.0 vue-qr生成二维码
    全局css设置
    input 输入框 json格式展示
    eslint 常用配置及说明
    es6中promise 使用总结
    vue 自定义全局组件
    vue element 表头添加斜线
    indexedDB 使用
    黑客攻防从入门到精通(攻防与脚本编程篇)
  • 原文地址:https://www.cnblogs.com/niuniu0108/p/7300550.html
Copyright © 2011-2022 走看看