`
mamacmm
  • 浏览: 199986 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

EasyUI-datagrid-自动合并单元格

阅读更多

1.目标

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

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

 

2.实现

  2.1 引入插件

    

/**
 * author ____′↘夏悸
 * create date 2012-11-5
 *
 **/
$.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.2html代码

    

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

  2.3js代码

    

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");
		}
	});

 

  2.4后台

     url:"testController.do?datagrid"

     后台数据就是普通的表格数据,这里就不赘述了

  

  2.5效果



 

 

 

 

 

 

 

 

 

  • 大小: 110.4 KB
  • 大小: 124.7 KB
  • 大小: 139 KB
1
3
分享到:
评论

相关推荐

    easyui的datagrid生成合并行,合计计算价格

    在描述中提到的"easyui的datagrid生成合并行,合计计算价格",指的是如何使用EasyUI的DataGrid组件来实现表格数据的行合并以及总价的计算功能。以下是对这个知识点的详细解释: 1. EasyUI DataGrid组件: EasyUI的...

    easyUI datagrid合并单元格(支持子对象的属性)

    easyUI datagrid合并单元格的两种方法 都实现了按照子对象的属性合并单元格的需求 调用方式也很简单调用方式: $(tableID).datagrid("autoUnrelatedMergeCells", ["role.name", "num"]);

    DataGrid表头合并和单元格内容合并-升级版

    这通常是通过自定义DataTemplate实现的,特别是在WPF中,我们可以利用DataTemplate的逻辑来决定何时合并单元格内容。例如,如果同一组数据的某字段值相同,那么可以合并这些单元格,只显示一次该值。 在"headerSpan...

    datagrid-export.js

    该文件是用来将easyui-datagrid按照格式导出到excel中,可以将合并的单元格,复杂的表头,背景色及字色等按照显示的样式导出到excel,即所见即所得

    datagrid-export.zip

    这个“datagrid-export.zip”文件提供了一种解决方案,使得开发者能够将EasyUI-datagrid中的数据按照其在界面上的样式,包括合并的单元格、复杂的表头、背景色和文字颜色等,方便地导出到Excel中,实现“所见即所得...

    jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容

    在EasyUI的datagrid组件中,通常会配置一些基本的属性如fitColumns表示是否自动调整列宽以填满父元素,url表示数据的来源,pagination表示是否启用分页功能,pageSize表示每页显示多少条记录等。而当数据返回后,会...

    EasyUI指定列-合并相同数据行

    // 调用mergeCellsByField()合并单元格,传datagrid的id和列名,多列用逗号隔开 extendgrid.mergeCellsByField("coal_arrive","VoyageName"); } }, }); ``` 这里使用`#coal_arrive`作为数据网格的标识,并设置...

    easyui datagrid

    easyui datagrid 单元格合并及合并单元格的背景设置

    jquery-easyui拓展之datagrid复合表头列锁定/解锁和列隐藏/显示

    http://blog.csdn.net/tianxiawudi0720/article/details/47401399

    easyui-bufferview.js(修改后)

    bufferview滚动时,滚动前后合并单元格修改, 要在自己的文件中,加入单元格合并方法: function _setDefaultMearge(rows) { var rows = $("#tt").datagrid('getRows'); var len = rows.length; var preIndex = 0...

    EasyUI tutorial 中文版 chm

    easyUI合并DataGrid单元格 easyUI为datagrid创建自定义视图 easyUI datagrid显示摘要信息在页脚 easyUI 根据一些条件改变DataGrid 行背景颜色 easyUI 创建一个 Property Grid easyUI 展开DataGrid里面的...

    基于easyui checkbox 的一些操作处理方法

    1、获取已勾选的行: var rows = $(‘#datagrid’).datagrid(‘getChecked’); 2、判断checkbox是否全选: ...以上这篇基于easyui checkbox 的一些操作处理方法就是小编分享给大家的全部内容了,希望能给大家一个参

    EasyUI表格合并,及echarts折线图,导出折线图为图片

    在EasyUI的datagrid中,通过设置特定的属性,比如`colspan`和`rowspan`,可以实现单元格的跨行或跨列。这在显示复杂的数据结构或者需要自定义布局时非常有用。例如,当需要在一个表格中合并某些具有关联性的数据时,...

    jquery easyui datagrid demo 详解

    在实际应用中,Datagrid 还有很多高级功能,如行选择、单击/双击事件、自定义工具栏、分组、合并单元格等,可以根据需求进行配置和扩展。通过熟练掌握 Datagrid 的使用,可以大大提高开发效率,为用户提供更加友好的...

    datagrid 4种解决table对齐

    通过`align-items`和`justify-items`可以控制单元格内容的对齐方式,进一步确保表头和列的对齐一致性。 4. JavaScript或jQuery插件: 对于更复杂的需求,如动态对齐或响应式设计,可以借助JavaScript或jQuery插件...

    easyui structs java环境下多级单元格合并及完美导出excel

    easyui structs java环境下多列单元格合并及完美导出excel,合并采用递归方式,例如第一列相同的合并,第二列的合并依据第一列确定,以此类推。网上的资料只能合并一列。完美导出到excel,保留了多列合并的结果,一...

    jQuery EasyUI API 中文文档 - DataGrid数据表格

    4. 列的特性:DataGrid的Column特性中包含了colspan和rowspan属性,允许合并单元格,创建更复杂的表格布局。同时,columns中每个元素的配置对象可以定义标题、宽度、对齐方式、是否可排序等。 通过上述的知识点,...

    easyui学习笔记(九)源码

    - 行渲染:`datagrid.bodyCell` 负责行数据的显示,包括单元格的合并、编辑模式的切换等。源码中还包含了对数据格式化和模板支持的处理。 4. **自定义扩展**: - 通过源码,我们可以学习如何扩展 `datagrid` 的...

    jQuery EasyUI 1.3 API 中文教程

    合并数据表格单元格 创建自定义视图 创建数据表格页底摘要 条件设置数据表行背景 创建折叠数据表格 折叠数据表格应用 折叠数据表格中套用数据表格 数据表格处理海量数据方法 窗口应用 创建简单...

    easyui合并相同行

    1. **EasyUI基础**:首先,你需要了解EasyUI的基本用法,包括如何创建表格(`datagrid`)、定义列(`columns`)以及数据绑定(`data`)。 2. **数据处理**:在合并相同行之前,可能需要对后端返回的数据进行预处理...

Global site tag (gtag.js) - Google Analytics