为什么CheckboxModel在使用paging toolbar时取消选择网页上所有选定的行?如何在页面更改时停止取消选择行?
我看到有一个pruneRemoved可用于阻止节点的修剪,我将其设置为false,但取消选择仍然被触发。不知道还有什么可以尝试。
我假设checkboxmodel向商店注册,或者当商店发生变化时,可能会通过pagingtoolbar通知...然后取消选择所有内容?为什么?我需要阻止它。
编辑: 我不希望deselectAll被解雇的原因是;我在select和deselect上附加了一个处理程序。选择将行添加到另一个网格,取消选择将其删除。因此,当用户选中一个复选框时,该行被添加到另一个网格中,当它们取消选中时,它将从该网格中删除。通过网格触发deselectAll,当商店发生变化时,我会丢失其他网格中保存的所有行。
答案 0 :(得分:0)
我不确定这是否是正确的方法,但它对我有用。
我所做的是创建自己的Ext.grid.View。我扩展了ext.view.Table并覆盖了onMaskBeforeShow方法。这是在网格选择模型上调用deselect all的方法。如你所见,我在这里评论了
Ext.define('Ext.grid.SteveView', {
extend: 'Ext.view.Table',
alias: 'widget.stevegridview',
onMaskBeforeShow: function(){
var me = this,
loadingHeight = me.loadingHeight;
//me.getSelectionModel().deselectAll();
me.all.clear();
if (loadingHeight && loadingHeight > me.getHeight()) {
me.hasLoadingHeight = true;
me.oldMinHeight = me.minHeight;
me.minHeight = loadingHeight;
me.updateLayout();
}
}
});
包含上面的脚本,然后在创建网格时,将viewType更改为stevegridview,或者您决定命名的任何内容
{
xtype: 'grid',
viewType:'stevegridview',
store:'some store'
...
}
将使用新的视图类型,将调用新的onMaskBeforeShow()。