Extjs 表格分组 grid grouping 获取某一分组

对于分组表格,要想获取到分组的某一个分组

var courseStore=Ext.create('Ext.data.Store',{
		   storeId:'courseStore',
		   fields:['Name','Type','Credit','Period','Teacher'],
		   autoLoad:{start:0,limit:itemsPerPage},
		   pageSize: itemsPerPage,
		   groupField:'Type',
//		   data:{'items':[
//		   	{'Name':'SQL深入详解','Type':'必修','Credit':'3','Period':'6周','Teacher':'zhang'},
//		   	{'Name':'SQL深入详解','Type':'必修','Credit':'3','Period':'6周','Teacher':'zhang'},	   	
//		   	]},
		   	proxy:{
			   	  type:'ajax',
			      url:'json/course.json',
			   	  
			   	  reader:{
			   	    type:'json',
			   	    root:'items',
			   	    totalProperty:'counts'
			   	  }
			}
		});
	
	var sm=Ext.create("Ext.selection.CheckboxModel",{
		mode:'MULTI',
		checkOnly:true,
		renderer:function(value,metaData,record,rowIndex,colIndex,store,view){
		    var type=record.get("Type");
		    if(type=="必修"){
		    	return  '';
		    }else{
		    	return '<div class="' + Ext.baseCSSPrefix + 'grid-row-checker"> </div>';
		    }
		    
	    }
	    
	});
	var courseGrid=Ext.create('Ext.grid.Panel',{
	       store:courseStore,
	       selModel:sm,
	       multiSelect:true,
	       viewConfig:{
		       forceFit:true,
		       scrollOffset: 0
	      },
	      features:[
	   	         Ext.create("Ext.grid.feature.Grouping",{
	   	        	 groupHeaderTpl:'课程类型:{name}(共有{rows.length}门)',
	   	        	 startCollapsed:false
	   	         })
	   	                
	   	    ],
	       columns:[
	         {header:'课程名',dataIndex:'Name',flex:2},
	         {header:'类型',dataIndex:'Type'},
	         {header:'学分',dataIndex:'Credit'},
	         {header:'学时',dataIndex:'Period'},
	         {header:'代课老师',dataIndex:'Teacher'},
	       ],
	       listeners:{
	    	  viewready:function(grid,eOpts){
	    	      var hd_checker =grid.getEl().select('.x-column-header-checkbox');
	 	    	  var hd = hd_checker.first();
	 	          if (hd_checker.hasCls('x-column-header-checkbox')) {   
	 	                hd_checker.removeCls('x-column-header-checkbox'); 0// 去掉全选框
	 	          }   
	 	          hd.destroy();
	           }
	    	  
	      }
	       
	});
Extjs4.x提供了getGroups,可以传递groupName,也就是store中配置的groupField的值

var myStore = Ext.create('Ext.data.Store', {
    groupField: 'color',
    groupDir  : 'DESC'
});

myStore.getGroups(); //returns:
[
    {
        name: 'yellow',
        children: [
            //all records where the color field is 'yellow'
        ]
    },
    {
        name: 'red',
        children: [
            //all records where the color field is 'red'
        ]
    }
]

//确认选择的课
	function selectCourseOk(){
		var mustSelectCount;//必修个数,必须选择
		var records=courseStore.getGroups("必修").children; //返回是model[]
		mustSelectCount=records.length;
		alert(mustSelectCount);
		courseGrid.getSelectionModel().selectRange(0,mustSelectCount-1,true);
		var recordes=courseGrid.getSelectionModel().getSelecion();  //返回Model[]
		
	}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值