`

解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

阅读更多

解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

 

方法:

写一个js文件,在js文件中重写复选框的显示代码,在其他地方引入该js文件

 

js文件重写代码如下:

//清除 checkbox 表头全选
Ext.override(Ext.grid.GridView,{	
    onRowSelect : function(row){
        this.addRowClass(row, "x-grid3-row-selected");
    	var selected = 0;
    	var len = this.grid.store.getCount();
        for(var i = 0; i < len; i++){
            var r = this.getRow(i);
            if(r){
               if( this.fly(r).hasClass('x-grid3-row-selected'))selected = selected + 1;
            }
        }
    	
        var hd = this.grid.getEl().select('div.x-grid3-hd-checker').first();   
        
        if (selected == len && !hd.hasClass('x-grid3-hd-checker-on')) {
        	 hd.addClass('x-grid3-hd-checker-on'); 
        }
    },

    onRowDeselect : function(row){
        this.removeRowClass(row, "x-grid3-row-selected");
        	var selected = 0;
        	var len = this.grid.store.getCount();
            for(var i = 0; i < len; i++){
                var r = this.getRow(i);
                if(r){
                   if( this.fly(r).hasClass('x-grid3-row-selected'))selected = selected + 1;
                }
            }
            var hd = this.grid.getEl().select('div.x-grid3-hd-checker').first();   
            
            if (selected != len && hd.hasClass('x-grid3-hd-checker-on')) {
            	 hd.removeClass('x-grid3-hd-checker-on'); 
            }
    }
});

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics