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

extjs3.1重写GroupingView实现分组全选

 
阅读更多

//支持Ext.grid.GroupingView 分组全选
	Ext.override(Ext.grid.GroupingView,{
	 initTemplates : function(){
	        Ext.grid.GroupingView.superclass.initTemplates.call(this);
	        this.state = {};

	        var sm = this.grid.getSelectionModel();
	        sm.on(sm.selectRow ? 'beforerowselect' : 'beforecellselect',
	                this.onBeforeRowSelect, this);

	        if(!this.startGroup){
	        	var selectDiv='';
	        	if(sm.header)
	        	selectDiv = '<div class="x-grid3-hd-inner x-grid3-hd-checker" unselectable="on" style="width:20px;float:left;padding:0"><div class="x-grid3-hd-checker" groupid="{groupId}">&nbsp;</div></div>'
	            this.startGroup = new Ext.XTemplate(
	                '<div id="{groupId}" class="x-grid-group {cls}">',
	                    '<div id="{groupId}-hd" class="x-grid-group-hd" style="{style}"><div class="x-grid-group-title">',selectDiv, this.groupTextTpl ,'</div></div>',
	                    '<div id="{groupId}-bd" class="x-grid-group-body">'
	            );
	        }
	        this.startGroup.compile();
	        if(!this.endGroup){
	            this.endGroup = '</div></div>';
	        }

	        this.endGroup = '</div></div>';
	    },
	 interceptMouse : function(e){
	        var hd = e.getTarget('.x-grid-group-hd', this.mainBody);
	        if(hd){
	            e.stopEvent();
	            var che = e.getTarget('.x-grid3-hd-checker', this.mainBody);
	            if(che){
					this.toggleGroup(hd.parentNode,true);
					this.toggleSelectGroup(che);
				}else
	            this.toggleGroup(hd.parentNode);
	        }
	    },
	    toggleSelectGroup : function(che){
			var phd = Ext.fly(che.parentNode);
	        var isChecked = phd.hasClass('x-grid3-hd-checker-on');
			var groupId = che.attributes.groupid.value;
			var arr = groupId.split('-');
			var groupFiled = arr[arr.length-2];
			var groupValue = arr[arr.length-1];
			var s = this.grid.store;
	            if(isChecked){
	            	phd.removeClass('x-grid3-hd-checker-on');
	                for(i=0;i<s.getCount();i++){
	                	if(s.getAt(i).get(groupFiled)==groupValue)
	                	this.grid.selModel.deselectRow(i);
					}
	            }else{
	            	phd.addClass('x-grid3-hd-checker-on');
					 for(i=0;i<s.getCount();i++){
						 if(s.getAt(i).get(groupFiled)==groupValue)
						 this.grid.selModel.selectRow(i,true);
					}
	                
	            }
			
		}

分享到:
评论

相关推荐

    extjs 3.1 组件 使用

    ExtJS 3.1 是一个历史悠久的JavaScript框架,主要用于构建富客户端Web应用程序。它提供了丰富的组件库,包括表格、表单、菜单、工具栏、树形结构等,使得开发者能够轻松创建复杂的用户界面。在本篇文章中,我们将...

    ExtJs3.1目前所有例子源代码

    这个压缩包包含了ExtJs 3.1的所有示例源代码,对于初学者来说,是一个宝贵的资源,可以用来学习和理解这个框架的工作原理。 首先,让我们深入了解一下ExtJs 3.1中的核心概念和主要特性: 1. **组件化**:ExtJs的...

    extjs3.1-3.3中文参考文档

    绝对中文翻译的extjs说明文档,对学习extjs有帮助

    extjs3.1中文API_chm版+书

    extjs3.1中文API_chm版+书 下次再穿个可视化编辑器

    Extjs3.1例子源代码

    Extjs3.1例子源代码Extjs3.1例子源代码Extjs3.1例子源代码vv

    extJS3.1源码及demo

    在"extJS3.1源码及demo"这个资源中,你将找到ExtJS 3.1.0的完整源代码和相关的示例。源码的分析对于深入理解框架的工作原理至关重要,特别是对于那些想要进行定制化开发或者优化性能的开发者来说。源码包含了各种...

    ExtJS3.1-3.3中文API文档.zip

    这个"ExtJS3.1-3.3中文API文档.zip"包含了从3.1版本到3.3版本的中文API文档,是学习和开发基于ExtJS应用的重要参考资料。 中文API文档通常包含以下几个主要部分: 1. **基础类库**:这部分介绍Ext的基础类,如...

    ExtJs 3.1的一些小例子源代码

    这个压缩包中的"ExtJs 3.1的一些小例子源代码"提供了一系列实际应用的示例,可以帮助开发者更好地理解和学习ExtJs 3.1版本的核心功能和特性。 1. **ExtJs 3.1概述** ExtJs 3.1是该框架的一个重要版本,它包含了...

    Aptana 的 Extjs 3.1 插件

    Aptana的ExtJS 3.1插件就是为了在Aptana IDE中集成ExtJS的开发支持,使得编写ExtJS代码更加便捷。 安装Aptana的ExtJS 3.1插件的过程相对简单。首先,你需要下载包含`features`和`plugins`两个文件夹的压缩包。`...

    ExtJs 3.1的一些实例源码.zip

    这个压缩包文件"ExtJs 3.1的一些实例源码.zip"很可能包含了一系列使用ExtJs 3.1编写的示例代码,这些示例可以用于学习和理解如何在实际项目中应用该框架。 首先,让我们来深入了解一下ExtJs 3.1的主要特性: 1. **...

    EXTJS3.1的一个页面

    随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。

    玉琴蝶园之ExtJs3.1目前(6月7日)所有例子源代码

    这个压缩包"玉琴蝶园之ExtJs3.1目前(6月7日)所有例子源代码"包含了ExtJS 3.1版本的全部示例源码,是学习和理解ExtJS 3.1功能和用法的重要资源。 首先,`index.html` 文件通常是应用程序的入口点,它会加载必要的库...

    Extjs 3.1~3.3 - 中文API文档

    Extjs 3.1~3.3 - 中文API文档

    ExtJS 3.1 下拉框 与aps.net绑定使用

    总结来说,ExtJS 3.1的下拉框结合ASP.NET可以实现灵活的数据绑定和交互,为Web应用程序提供动态、丰富的用户体验。通过理解Store、Display Field、Value Field以及Query Mode等核心概念,你可以根据实际需求定制出...

    Extjs3.1插件

    在"Extjs3.1插件"这个主题中,我们主要关注的是ExtJS 3.1版本及其相关的插件。ExtJS 3.1包含了核心库、组件、布局、数据包和各种实用工具。这些组件包括按钮、表格、表单、树形视图、面板、菜单、图表等,几乎涵盖了...

    Extjs3.1+struts2+spring2.5+hibernate3.5环境

    "Extjs3.1+struts2+spring2.5+hibernate3.5环境"是一个经典的Java Web开发组合,每个组件都有其特定的角色和功能。以下是这些技术的详细说明: 1. **ExtJS 3.1**: ExtJS是一款基于JavaScript的前端用户界面(UI)...

    ExtJs 3.1 框架的小例子合集源代码.rar

    ExtJs 3.1 框架的小例子合集源代码,EXT主库需远程调用,部分代码还有些错误,可能是EXT调用的问题,研究过EXT的应该很容易就修正,不懂的朋友就当是了解一些前奏知识吧,必竟EXT相对来说是比较复杂的,在界面方面...

    EXTJS动态树支持checkbox 全选

    总结来说,EXTJS动态树支持checkbox全选是一个结合了EXTJS TreePanel组件、数据模型、事件处理和异步加载技术的功能实现,旨在提供用户友好的多选操作。通过这个功能,开发者可以构建出更加交互性强、功能丰富的Web...

Global site tag (gtag.js) - Google Analytics