1.目标

1.1表格初始化完成后,已经自动合并好需要合并的行;

1.2当点击字段排序后,重新进行合并;

2.实现

2.1 引入插件

  1. /**
  2. * author ____′↘夏悸
  3. * create date 2012-11-5
  4. *
  5. **/
  6. $.extend($.fn.datagrid.methods, {
  7. autoMergeCells : function (jq, fields) {
  8. return jq.each(function () {
  9. var target = $(this);
  10. if (!fields) {
  11. fields = target.datagrid("getColumnFields");
  12. }
  13. var rows = target.datagrid("getRows");
  14. var i = 0,
  15. j = 0,
  16. temp = {};
  17. for (i; i < rows.length; i++) {
  18. var row = rows[i];
  19. j = 0;
  20. for (j; j < fields.length; j++) {
  21. var field = fields[j];
  22. var tf = temp[field];
  23. if (!tf) {
  24. tf = temp[field] = {};
  25. tf[row[field]] = [i];
  26. } else {
  27. var tfv = tf[row[field]];
  28. if (tfv) {
  29. tfv.push(i);
  30. } else {
  31. tfv = tf[row[field]] = [i];
  32. }
  33. }
  34. }
  35. }
  36. $.each(temp, function (field, colunm) {
  37. $.each(colunm, function () {
  38. var group = this;
  39.  
  40. if (group.length > 1) {
  41. var before,
  42. after,
  43. megerIndex = group[0];
  44. for (var i = 0; i < group.length; i++) {
  45. before = group[i];
  46. after = group[i + 1];
  47. if (after && (after - before) == 1) {
  48. continue;
  49. }
  50. var rowspan = before - megerIndex + 1;
  51. if (rowspan > 1) {
  52. target.datagrid('mergeCells', {
  53. index : megerIndex,
  54. field : field,
  55. rowspan : rowspan
  56. });
  57. }
  58. if (after && (after - before) != 1) {
  59. megerIndex = after;
  60. }
  61. }
  62. }
  63. });
  64. });
  65. });
  66. }
  67. });

2.2html代码

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

2.3js代码

  1. var sortFlag = false;
  2. $('#simpleDgId').datagrid({
  3. url:"testController.do?datagrid",
  4. fitColumns:true,
  5. singleSelect:true,
  6. remoteSort: false,
  7. columns:[[
  8. {field:"age",title:"年龄",width:25,align:'center',sortable:true},
  9. {field:"userName",title:"名称",width:25,align:'center',sortable:true},
  10. {field:"mobilePhone",title:"手机",width:25,align:'center',sortable:true}
  11. ]],
  12. onSortColumn:function(sort, order){
  13. sortFlag = true;
  14. if("userName"==sort){
  15. $(this).datagrid("autoMergeCells",[sort]);
  16. }else{
  17. $(this).datagrid("autoMergeCells");
  18. }
  19. },
  20. onLoadSuccess: function(data){
  21. if(!sortFlag) $(this).datagrid("autoMergeCells");
  22. }
  23. });

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

  1. easyui生成合并行,合计计算价格

    easyui生成合并行,合计计算价格 注:本文来源: 原创 一:图样你效果图 二:代码实现 1:datagrid 列展示: window.dataGrid = $("#dataGrid&qu ...

  2. 反射实体自动生成EasyUi DataGrid模板 第二版--附项目源码

    之前写过一篇文章,地址 http://www.cnblogs.com/Bond/p/3469798.html   大概说了下怎么通过反射来自动生成对应EasyUi datagrid的模板,然后贴了很多 ...

  3. DIV内容超出长度显示省略号,鼠标移上自动显示全部内容(EasyUI DataGrid)

    如果想把DIV中超出的文本显示成省略号,而不是换行全部显示,有2个办法. 注:本文主要是以EasyUI的DataGrid为案例的,如果是其他场景只要底层是用DIV显示文本的应该都能使用. 首先可以给此 ...

  4. easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题

    在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...

  5. 反射实体自动生成EasyUi DataGrid模板

    用EasyUi Datagrid展示数据的时候总是要一下这样一段代码 <table id="dt" class="easyui-datagrid"> ...

  6. easyUI datagrid editor扩展dialog

    easyUI datagrid简单使用:着重两点1.editor对象的click事件:2.将dialog窗体内的值填写到当前正编辑的单元格内 <!DOCTYPE html> <htm ...

  7. EasyUI datagrid优化

    easyui datagrid 在IE上加载速度慢, 150行数据就无法忍受了. firefox加载速度还可以. jquery easyui datagrid使用参考 http://www.cnblo ...

  8. 初识 easyui datagrid

    首先应该下载好easyui datagrid所用的各种js 和css 这个可以到官网上去下载. 首先要引入datagrid所引入的js和css. <script src="js/jqu ...

  9. jquery easyui datagrid使用参考

    jquery easyui datagrid使用参考   创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...

随机推荐

  1. js模版引擎handlebars.js实用教程——循环中使用索引

    <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content="text/ ...

  2. js模版引擎handlebars.js实用教程——with-进入到某个属性(进入到某个上下文环境)

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...

  3. 实践基于Task的异步模式

    Await 返回该系列目录<基于Task的异步模式--全面介绍> 在API级别,实现没有阻塞的等待的方法是提供callback(回调函数).对于Tasks来说,这是通过像ContinueW ...

  4. IOS UIView 03- 自定义 Collection View 布局

    注:本人是翻译过来,并且加上本人的一点见解. 前言 UICollectionView 在 iOS6 中第一次被引入,也是 UIKit 视图类中的一颗新星.它和 UITableView 共享一套 API ...

  5. python面向对象随笔

    传送门:http://www.runoob.com/python/python-object.html

  6. OutputCache属性详解(二)一 Location

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  7. 【JMS】JMS之ActiveMQ的使用

    这篇文章主要是简单介绍一下JMS和ActiveMQ,以及使用ActiveMQ来写两个demo. 1. JMS是啥 百度百科的解释: JMS即Java消息服务(Java Message Service) ...

  8. Android SDK 百度云盘分享链接

    SDK百度云盘地址: 链接: http://pan.baidu.com/s/1skSCplF 密码: drq4 使用说明: 这是Android开发所需的sdk,下载并解压后,将解压出的整个文件夹复制或 ...

  9. jS事件之网站常用效果汇总

    下拉菜单 <!--简单的设置了样式,方便起见,将style和script写到同一个文档,着重练习事件基础--> <!DOCTYPE html> <html> < ...

  10. SQLSERVER中的ALLOCATION SCAN和RANGE SCAN

    SQLSERVER中的ALLOCATION SCAN和RANGE SCAN 写这篇文章的开始,我还不知道ALLOCATION SCAN的工作原理是怎样的,网上资料少得可怜 求助了园子里的某位大侠,他看 ...