Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
extjs checkboxselection标头未更新_Extjs - Fatal编程技术网

extjs checkboxselection标头未更新

extjs checkboxselection标头未更新,extjs,Extjs,我有一个带有复选框selectionmodel的ExtJs网格。选中标题复选框将选中所有记录,取消选中复选框将取消选中所有记录,当然这就是行为。“我的网格”有一个“删除”按钮,用于删除所选/所有记录,运行正常 现在我的问题是,当我选中标题处的复选框(以便选中整个记录)并点击我的删除按钮时,网格中的所有记录都将被删除但是,列标题中的复选框选择仍然保持选中状态。 我使用的代码是:grid.getSelectionModel().ClearElections(false)删除后清除所选内容。我想,这段

我有一个带有复选框selectionmodel的ExtJs网格。选中标题复选框将选中所有记录,取消选中复选框将取消选中所有记录,当然这就是行为。“我的网格”有一个“删除”按钮,用于删除所选/所有记录,运行正常

现在我的问题是,当我选中标题处的复选框(以便选中整个记录)并点击我的删除按钮时,网格中的所有记录都将被删除但是,列标题中的复选框选择仍然保持选中状态。

我使用的代码是:grid.getSelectionModel().ClearElections(false)删除后清除所选内容。我想,这段代码只适用于网格中的记录,与列标题部分无关。有没有办法,我可以取消选择标题中的复选框

经过详细调查,我惊讶地发现CheckBoxSelectionModel中显示的复选框不是html复选框,而是图像。因此,我使用DOM概念取消选中复选框的想法不能在这里应用。相反,需要做一些CSS技巧

以前有人遇到过这样的问题吗?有什么解决办法吗? 任何帮助都将不胜感激。
谢谢

将侦听器应用于CheckboxSelectionModel:

试试这个:

    var sm = new Ext.grid.CheckboxSelectionModel({
    listeners : {
            selectionchange : function(){
                var recLen = Ext.getCmp('grid').store.getRange().length;
                var selectedLen = this.selections.items.length;
                if(selectedLen == recLen){
                    var view   = Ext.getCmp('grid').getView();
                    var chkdiv = Ext.fly(view.innerHd).child(".x-grid3-hd-checker")
                    chkdiv.addClass("x-grid3-hd-checker-on");
                }
            }
            ,rowdeselect : function ( sm ,rowIndex ,record) {
                var view   = Ext.getCmp('grid').getView();
                var chkdiv = Ext.fly(view.innerHd).child(".x-grid3-hd-checker")
                chkdiv.removeClass('x-grid3-hd-checker-on');
            }
    }
 });

Id添加一个ELSE检查以避免在设置header checked并更新selectionmodel选择小于store length的行时出现这种情况:

var sm = new Ext.grid.CheckboxSelectionModel({
    listeners : {
            selectionchange : function(){
                var recLen = Ext.getCmp('grid').store.getRange().length;
                var selectedLen = this.selections.items.length;
                var view   = Ext.getCmp('grid').getView();
                var chkdiv = Ext.fly(view.innerHd).child(".x-grid3-hd-checker")
                if(selectedLen == recLen){
                    chkdiv.addClass("x-grid3-hd-checker-on");
                } else {
                    chkdiv.removeClass("x-grid3-hd-checker-on");
                }
            }
            ,rowdeselect : function ( sm ,rowIndex ,record) {
                var view   = Ext.getCmp('grid').getView();
                var chkdiv = Ext.fly(view.innerHd).child(".x-grid3-hd-checker")
                chkdiv.removeClass('x-grid3-hd-checker-on');
            }
    }
 });
var view=grid.getView();
var chkdiv=Ext.fly(view.innerHd).child(“.x-grid3-hd-checker”);

chkdiv.removeClass(“x-grid3-hd-checker-on”)嘿,谢谢@MMT。忙着做一些工作。谢谢你的解决方案。让我试试,很快就会回来:)