0

为什么CheckboxModel在使用分页工具栏时会取消选择页面更改上的所有选定行?如何停止在页面更改时取消选择行?

我看到有一个 pruneRemoved 可用于防止修剪节点,我将其设置为 false,但仍会触发取消选择。不知道还有什么可以尝试的。

我假设 checkboxmodel 向商店注册,或者可能在商店更改时通知分页工具栏......然后取消选择所有内容?为什么?我需要防止这种情况。

编辑:我不希望 deselectAll 被解雇的原因是;我在选择和取消选择上附加了一个处理程序。选择将行添加到另一个网格,取消选择删除它们。因此,当用户选中一个复选框时,该行被添加到另一个网格中,当他们取消选中它时,它会从该网格中删除。通过触发取消选择的网格,当存储发生更改时,我会丢失另一个网格中保存的所有行。

4

1 回答 1

0

我不确定这是否是正确的方法,但它对我有用。

我所做的是创建自己的 Ext.grid.View。我扩展了 ext.view.Table 并覆盖了 onMaskBeforeShow 方法。这是在网格选择模型上调用取消全选的方法。如您所见,我在这里发表了评论

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()。

于 2012-10-03T01:34:55.987 回答