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;
}
}
}
});
});
});
}
});
最新文章
- generator自动生成mybatis配置和类信息
- 鸟哥的linux私房菜学习记录之系统设定工具与硬件检测
- 【转】Xcode 6制作动态及静态Framework
- android Animation 动画绘制逻辑
- Mvc 中ViewBag Model 查找不到解决
- Python中整数和浮点数
- Python不同电脑之间传输文件实现类似scp功能不输密码
- jquery ajax 报交请求返回 HTTP 400 错误
- 用正则匹配一串字符串中的ip地址
- 为什么有时候必须添加sys.setdefaultencoding(&#39;utf-8&#39;)
- !终端伪装测试之fuck校园网
- 【转载】JAVA中综合接口和抽象类实现的一种“抽象接口”
- tomcat 日志切割 catalina.out
- 【BZOJ5294】[BJOI2018]二进制(线段树)
- Library弱依赖打包
- 9、Dockerfile实战-Nginx
- 使用Chrome保存网页为mht文件
- oracle怎么恢复被覆盖的存储过程
- UVA-10163 Storage Keepers (0-1背包)
- Python:集合操作总结