解决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'); } } });