在ExtJS 4中,我在我的grid.Panel中使用了CheckBoxModel以及显示当前选定记录数的显示计数。然后,当单个记录被选中或取消选中后,通过监听事件来更新我选择的记录数,然后发布选定的数组值。在选择单个记录时它工作得很好。但是,当我选中或者取消选择所有记录的“ALL”复选框时,我似乎找不到我的侦听器点击事件的入口点,因此我显示的记录数不会更新。此外,CheckBoxModel没有这样的“ALL”选定/未选定事件。如何在ExtJS 4中使用CheckBoxModel时监听所有“Checked”或“UnChecked”事件?
3
A
回答
3
尝试在CheckboxModel上添加selectionchange侦听器:发生选择更改后触发。
检查this
2
最近我发现自己还需要结合对电网的某些功能的全选和deselectall操作。我的解决方案是扩展checkboxmodel
选择模型,以便我可以附加在正确时间触发的selectall
和deselectall
听众。最简单的方法是这样的。
首先宣布你的新模式,并确保它扩展了checkboxModel
Ext.define('My.selection.CheckboxModel', {
extend: 'Ext.selection.CheckboxModel',
onHeaderClick: function (headerCt, header, e) {
if (header.isCheckerHd) {
e.stopEvent();
var me = this, isChecked = header.el.hasCls(Ext.baseCSSPrefix + 'grid-hd-checker-on');
me.preventFocus = true;
if (isChecked) {
me.deselectAll(); // Pass true as a parameter to prevent selectionchanged and select events firing
me.fireEvent('deselectall', me);
}
else {
me.selectAll(); // Pass true as a parameter to prevent selectionchanged and select events firing
me.fireEvent('selectall', me);
}
delete me.preventFocus;
}
}
});
然后在网格中添加以下selModel
的配置对象:
selModel: Ext.create('My.selection.CheckboxModel', {
checkOnly: true, // you can add whatever normal configuration properties you want here
listeners: {
selectall: function() { console.log('selectAll'); },
deselectall: function() { console.log('deselectAll'); }
}
}),
其值得注意的是,selectionChanged
和select
网格上的听众和行也将触发,除非您在扩展选择模型中传递真正的selectall
和deselectall
调用。
相关问题
- 1. 在JavaScript中监听所有事件
- 2. 单击ExtJS中的事件/监听器
- 3. 如何将tableView中的所有单元格设置为checked或unchecked?
- 4. 阵营本地监听所有事件
- 5. 返回java.util.Optional或抛出(Checked/Unchecked)异常
- 6. WPF:ListView/GridView中的复选框 - 如何在Checked/Unchecked事件中获取ListItem?
- 7. ExtJs 3或4 - LostFocus事件
- 8. ExtJS 4 CheckboxModel和网格列默认
- 9. EXTJS 4 - 全局异常监听器
- 10. 在C++中监听事件
- 11. 使用事件监听器创建preUpdate或preFlush事件
- 12. 如何在Java中监听进程向上或向下事件?
- 13. 码头集装箱如何监听所有码头事件?
- 14. 如何在symfony2中使用事件监听器和注释
- 15. as3:如何禁用事件监听器
- 16. Laravel监听器监听多个事件
- 17. ExtJS CheckboxSelectionModel监听器
- 18. Laravel事件监听
- 19. jQuery事件监听
- 20. 如何使用JQUERY设置复选框checked和unchecked event
- 21. CheckboxModel得到检查extjs中的所有值
- 22. 使用Javascript监听我的Flash事件
- 23. 在Extjs 4的商店中加载监听器不工作
- 24. ActionScript 3中有效的事件监听
- 25. 在Backbone视图中监听事件散列下列出的所有事件?
- 26. 事件监听器在PHP
- 27. 如何在使用Silverlight的代码隐藏复选框中添加一个'checked'/'unchecked'事件处理程序?
- 28. ExtJS和事件监听器:'load'未被调用。怎么会?
- 29. ExtJS使用Ext.KeyMap监听全局按键
- 30. 从ExtJS滑块中删除事件监听器“keydown”
好的建议,但逻辑可能会很棘手 - 如果你点击ALL框或最后剩下的框,所有选择都是相同的 - 这可能是也可能不是你想要的。 – dbrin 2011-12-22 21:47:19
谢谢MMT。我会测试你的建议! – user1110938 2011-12-24 18:24:07
@ user1110938如果有效,不要忘记选择它(左边的复选标记),以便其他人知道。 – Geronimo 2012-01-09 00:47:31