extjs checkboxselection标头未更新
我有一个带有复选框selectionmodel的ExtJs网格。选中标题复选框将选中所有记录,取消选中复选框将取消选中所有记录,当然这就是行为。“我的网格”有一个“删除”按钮,用于删除所选/所有记录,运行正常 现在我的问题是,当我选中标题处的复选框(以便选中整个记录)并点击我的删除按钮时,网格中的所有记录都将被删除但是,列标题中的复选框选择仍然保持选中状态。 我使用的代码是:grid.getSelectionModel().ClearElections(false)删除后清除所选内容。我想,这段代码只适用于网格中的记录,与列标题部分无关。有没有办法,我可以取消选择标题中的复选框 经过详细调查,我惊讶地发现CheckBoxSelectionModel中显示的复选框不是html复选框,而是图像。因此,我使用DOM概念取消选中复选框的想法不能在这里应用。相反,需要做一些CSS技巧 以前有人遇到过这样的问题吗?有什么解决办法吗? 任何帮助都将不胜感激。extjs checkboxselection标头未更新,extjs,Extjs,我有一个带有复选框selectionmodel的ExtJs网格。选中标题复选框将选中所有记录,取消选中复选框将取消选中所有记录,当然这就是行为。“我的网格”有一个“删除”按钮,用于删除所选/所有记录,运行正常 现在我的问题是,当我选中标题处的复选框(以便选中整个记录)并点击我的删除按钮时,网格中的所有记录都将被删除但是,列标题中的复选框选择仍然保持选中状态。 我使用的代码是:grid.getSelectionModel().ClearElections(false)删除后清除所选内容。我想,这段
谢谢 将侦听器应用于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。忙着做一些工作。谢谢你的解决方案。让我试试,很快就会回来:)