`
474904099
  • 浏览: 11996 次
  • 性别: Icon_minigender_2
  • 来自: 珠海
社区版块
存档分类
最新评论

实现jqGrid三级表头功能,支持冻结,拖动

阅读更多
基于jqGrid表格上,实现三级表头。首先,看看实现的效果





jqGrid的demo上有这样一句话Note that group header is suppored only when useColSpanStyle is false ,指出只支持useColSpanStyle 为 false的冻结,所以采用useColSpanStyle=true冻结以后会存在一些问题。

在实现三级表头的同时,也把一些问题考虑在内了,先大概说明本人修改的代码部分,附件也会把源码和三级表头代码附上,基于4.4.4版本的,上面有标注ljq的,就是本人修改的代码。

添加和修改的代码部分有:
(1)在源码setGroupHeaders方法后面加上新方法setComplexHeaders

(2)添加冻结表头添加方法: createFrozenHtable

(3)修改源码setFrozenColumns方法,支持三级表头冻结

(4)修改源码showHideCol方法,添加三级表头处理

(5)修改源码dragStart: function(i,x,y) {//当存在滚动条时,处理冻结列拖动图标问题,
如果使用了冻结功能,当表格出现横向滚动条并将滚动条拖到右边,点击冻结列的拖动,拖动图标将会是里面表头的位置。

(6)修改源码getColumnHeaderIndex方法,冻结列的拖动图标获取不正确,需要兼容冻结情况,
if (th === headers[i].el || (ts.p.frozenColumns && th.id === headers[i].el.id)) {

(7)setFrozenColumns方法里面有个$($t).bind('jqGridOnSortCol.setFrozenColumns', function (index, idxcol) {,
如果原生二级表头采用useColSpanStyle=true,点击冻结列排序按钮没显示,
在这个地方可以修改一下变量previousSelectedTh和newSelectedTh,
可以通过colModel的index方式去取name,然后通过tr的id去获取,这样会通用很多。不过附件没有处理。



下面是调用的代码:
var complexoption = {
        complexHeaders:{
                 defaultStyle:true,
                 threeLevel:[     
                 {startColumnName:"id",numberOfColumns:2,titleText:"三级表头1"},
                 {startColumnName:"name",numberOfColumns:5,titleText:"三级表头2"}
                            ],
                 twoLevel:[     
                {startColumnName:"name",numberOfColumns:2,titleText:"二级表头1"},
                {startColumnName:"total",numberOfColumns:2,titleText:"二级表头2"}
                          ]
             }
                    };
jQuery("#list").jqGrid("setComplexHeaders",complexoption);
jQuery("#list").jqGrid("setFrozenColumns");


defaultStyle为true表示默认样式,可以配置为false试试,
threeLevel指定三级表头
twoLevel指定二级表头


附件是基于源码4.4.4基础上添加的三级表头代码。在这里和大家分享一下。由于公司项目需要,开发了此功能。




  • 大小: 50.6 KB
分享到:
评论
5 楼 CrazyDream_ 2016-11-28  
如果只用二级表头就会出错!
4 楼 liloo_looli 2016-06-20  
3 楼 yingwei670010378 2014-12-19  
牛人你好 怎么继续扩展 支持四级甚至 多级呢

PS:利用jqgrid 自带设置表头时,三级以上合并时,一级表头就会往上跑  无解
2 楼 siukak 2014-11-12  
相当不错!但是支持多级就更好了
1 楼 itlangqun 2014-06-23  
厉害!

相关推荐

    jqGrid表头锁列及排序功能细节

    在本文中,我们将深入探讨jqGrid中的表头锁列和排序功能的实现细节。 一、jqGrid 添加列的大标题 jqGrid 提供了设置列组标题的功能,允许为多列设置一个共同的标题头部,提升表格的可读性。实现这一功能的代码如下...

    Jquery 实现列的拖动 jquery grid

    本文将详细讲解如何利用jQuery实现网格(Grid)中的列拖动功能,以及如何展示和压缩内容,以达到类似Excel的效果。 首先,我们需要引入jQuery库和jQuery Grid插件的相关文件。jQuery Grid通常基于jQuery UI,因此...

    数据表格JqGrid自适应列宽度

    本文将深入探讨“数据表格JqGrid自适应列宽度”这一主题,以帮助开发者更好地理解和实现这一功能。 首先,JqGrid允许用户根据屏幕尺寸或窗口大小自动调整列宽,以优化用户体验。这种自适应性是现代Web应用中必不可...

    jqgrid 解决冻结栏高度不一致的问题,修改了源代码

    jqgrid 采用冻结栏之后往往会出现冻结的栏的高度和非冻结栏高度的不一致,滚动滚动条的时候出现冻结栏的div小好几个px 的问题

    jquery.jqGrid.groupHeader-0.2.1.js

    jqGrid没有setComplexGroupHeaders方法,使用此插件实现三级分组表头功能

    利用jqGrid实现类似Excel录入功能

    这篇文章将深入探讨如何利用jqGrid来实现类似Excel的录入功能,让用户能够在Web界面中进行高效的数据操作。 首先,我们需要了解jqGrid的基本结构。jqGrid是一个基于jQuery的插件,它通过HTML表格元素来呈现数据。你...

    jqgrid实现图片上传功能(java版)

    在这个主题中,我们将探讨如何利用jqGrid来实现图片上传的功能,并结合Java后端的Servlet技术,构建一个完整的文件上传系统。首先,我们来看看前端部分。 1. **jqGrid 配置** 在jqGrid中添加上传功能,我们需要对...

    基于jqgrid实现树形菜单分页列表查询

    jqGrid是一款强大的jQuery插件,它提供了丰富的功能,如数据网格、分页、排序、过滤、编辑等,同时支持多种数据源,包括JSON、XML、CSV等。在这个项目中,我们利用jqGrid的特性,将表格数据呈现为树形结构,模仿...

    单行或多行复杂的固定(冻结)表头的完美解决方案

    自定义的用于处理GridView的固定(冻结)表头,单行或多行复杂表头不限,能兼容多种济览器版本,对tableLayout:fixed和auto这两种情况都是支持的。

    JQuery Mobile 中实现 jqGrid 数据分组

    在本文中,我们将深入探讨如何在JQuery Mobile中实现jqGrid数据分组,这是一个非常实用的功能,可以帮助用户更有效地组织和展示大量数据。首先,我们需要理解JQuery Mobile和jqGrid的基本概念。 JQuery Mobile是一...

    jqGrid详解及高级应用

    1. 完全的JavaScript API控制:开发者可以通过JavaScript API对jqGrid进行完全控制,以实现更灵活的数据操作和管理。 2. 数据格式支持:支持从服务器端以JSON或XML格式返回数据,提供多样化的数据接口选项。 3. 简单...

    jgrid实现列的动态

    本文将深入探讨如何在jGrid中实现列的动态显示和配置,这是在处理复杂数据展示时非常有用的功能。 ### jGrid中的动态列显示 动态列显示意味着根据特定条件或用户选择来调整表格中显示的列。这不仅提高了用户体验,...

    jqgrid合并单元格,合并行、合并列

    jqgrid合并行、合并列 先看示例图片最终效果: jqgrid合并单元格 .jqgrid { width: 80%; margin: 0 auto; } /* 这个代码是解决表头有一点点错位的问题 */ .ui-state-default, .ui-widget-content .ui-state...

    table表格样式利用jqgrid实现

    本教程将深入探讨如何利用jqGrid来实现美观且功能丰富的表格样式。 首先,我们需要了解jqGrid的基本概念。jqGrid是由Trirand公司开发的,基于jQuery的开源项目,它提供了数据网格的功能,支持数据分页、排序、过滤...

    jqgrid实现分组显示和统计

    它支持多种功能,包括数据分页、排序、搜索、编辑等。在本教程中,我们将深入探讨如何利用jqGrid实现数据的分组显示和统计,这对于数据分析和报告呈现来说尤其重要。 一、分组显示 1. 初始化jqGrid 首先,我们需要...

    JqGrid插件+JqGridDemo+JqGrid主题

    3. 排序与筛选:用户可以通过点击表头进行列排序,同时JqGrid还提供了高级的筛选功能,如条件筛选、多条件组合筛选等。 4. 编辑功能:JqGrid支持行内编辑、弹出式编辑和表单编辑等多种模式,方便用户对表格数据进行...

    关于jqGrid中查询功能

    总的来说,jqGrid的查询功能通过JSON格式的参数实现了灵活的数据过滤。在后端,开发者需要理解这些参数的结构,并编写相应的代码来处理这些查询请求,将其转化为数据库操作,最后返回匹配的记录给前端展示。这样的...

    jqGrid5.5 版本

    8. 插件和扩展:jqGrid有广泛的社区支持,提供许多第三方插件和扩展,如增强的导出功能、自定义小工具等,进一步增强了其功能。 9. 性能优化:jqGrid5.5版本在处理大量数据时进行了性能优化,提高了数据加载速度,...

Global site tag (gtag.js) - Google Analytics