说明:Extjs3.x以后,GridPanel添加了groupclick等方法。

本例实现了给Extjs2.x的GridPanel添加groupclick等方法的解决方案。

思路:

1. 为自定义的gridpanel对象添加自定义事件,例如:groupclick。

2. 重写GroupingView的鼠标处理事件(renderUI),对分组的header的鼠标事件进行拦截。

3. 为自定义的gridpanel对象添加groupclick事件的具体方法。

主要代码如下:

1.重写部分:

Ext.override(Ext.grid.GroupingView, {

renderUI: function () {

Ext.grid.GroupingView.superclass.renderUI.call(this);

this.grid.processEvent = this.grid.processEvent.createInterceptor(this.processEvent, this);

this.mainBody.on('mousedown', this.interceptMouse, this);

if (this.enableGroupingMenu && this.hmenu) {

this.hmenu.add('-', {

itemId: 'groupBy',

text: this.groupByText,

handler: this.onGroupByClick,

scope: this,

iconCls: 'x-group-by-icon'

});

if (this.enableNoGroups) {

this.hmenu.add({

itemId: 'showGroups',

text: this.showGroupsText,

checked: true,

checkHandler: this.onShowGroupsClick,

scope: this

});

}

this.hmenu.on('beforeshow', this.beforeMenuShow, this);

}

},

//  private

processEvent: function (name, e) {

var hd = e.getTarget('.x-grid-group-hd', this.mainBody);

if (hd) {

var groupField = this.getGroupField();

var idPrefix = this.grid.getGridEl().id + '-gp-' + groupField + '-';

var groupValue = hd.id.substring(idPrefix.length);

var groupValue = groupValue.substring(0, groupValue.lastIndexOf('-'));

if (groupValue) {

this.grid.fireEvent('group' + name, this.grid, groupField, groupValue, e);

}

}

}

});

2.gridpanel部分:

this.addEvents({//加入自定义事件

"groupclick": true

});

this.on('groupclick', function (grid, groupField, groupValue, e) {

// do something...

});

转载于:https://blog.51cto.com/wangyuelucky/1180672

给Extjs2.x GridPanel添加goup系方法相关推荐

  1. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({             text:'启用',             sco ...

  2. linux下添加路由的方法

    Linux中增加软路由的两种方法 第一种: route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0 /* 增加 ...

  3. linux服务器怎么添加路由,linux系统中添加路由的方法

    linux系统中添加路由的方法 发布时间:2020-06-17 11:38:59 来源:亿速云 阅读:95 作者:Leah 这篇文章将为大家详细讲解有关linux系统中添加路由的方法,小编觉得挺实用的 ...

  4. 深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法

    一.背景 深度学习的兴起让增强学习这个古老的机器学习分支迎来一轮复兴.它们的结合领域-深度增强学习(Deep reinforcement learning, DRL)随着在一系列极具挑战的控制实验场景 ...

  5. jsp ul设置滚动条_jquery实现Li滚动时滚动条自动添加样式的方法

    本文实例讲述了jquery实现Li滚动时滚动条自动添加样式的方法.分享给大家供大家参考.具体如下: 这里使用jquery实现当拖动滚动条的时候,Li滚动列表中的内容会自动随滚动条变化而下移,并自动添加 ...

  6. 在Ubuntu 14.04 64bit中永久添加DNS的方法

    DNS信息是由/etc/resolv.conf提供的,它是每次开机时,由/sbin/resolvconf生成的 /etc/resolv.conf是/run/resolvconf/resolv.conf ...

  7. springboot在工具类中添加service的方法,显示为空的解决方案

    springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...

  8. Button中command后面函数添加参数解决方法

    Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...

  9. python添加时间戳_Python 给某个文件名添加时间戳的方法

    Python 给某个文件名添加时间戳的方法 发布时间:2020-09-20 18:25:15 来源:脚本之家 阅读:87 作者:cheney康 问题描述: 1.(先添加时间戳,再复制移动,两个文件加下 ...

最新文章

  1. 计算机408考研重点
  2. php swfupload handlers.js,swfupload使用代码说明
  3. java判断用户是否在某一个区域登录_Java实现QQ登录和微博第三方登录
  4. 【作死】更新macOS Mojave后Vagrant无法使用
  5. C语言再学习 -- 声明与定义
  6. 让CMD窗口显示中文[JAVAC输出中文错误信息乱码的解决]
  7. [Jsp] JSP和Servlet页面间的参数的传递和接收
  8. 解决PHP 中英文字符串截取出现半个字符
  9. sql 以a开头的所有记录_SQL开发与数据库管理笔记
  10. C++(15)--面向对象编程实践-欢乐斗地主(vector的花式输出)
  11. 收集瓶盖赢大奖(信息学奥赛一本通-T1045)
  12. 马云终于露面了!发表千字演讲
  13. C语言内建函数:__builtin_XXX
  14. 移动支付到底有多美?
  15. 开发者生态与双引擎:华为的雄心壮志!
  16. ios、android、h5、小程序等安卓苹果平台终端兼容问题
  17. [AngularJS] 插件ui-grid使用说明
  18. Mac下Android 反编译
  19. table固定表头、固定列
  20. 《缠中说禅》炒股经典理论

热门文章

  1. Matlab重新激活
  2. 计算机毕业设计Android的游戏资讯APP设计(源码+系统+mysql数据库+Lw文档)
  3. 高频高精度圆柱形音圈电机 微型VCM 直线电机模组 音圈马达
  4. 科学家制造迄今最低温度新纪录
  5. 计算机硬盘管理 3t,3T硬盘的使用方法总结与分享
  6. MariaDB 视图与触发器
  7. 码科速送同城跑腿小程序v3.0.62+前端+插件
  8. sed全文字符串替换
  9. Java+MySql+BootStrap开源项目学生宿舍管理系统
  10. 使用VB求解“华容道”问题