extjs 有状态网格删除排序

Posted

技术标签:

【中文标题】extjs 有状态网格删除排序【英文标题】:extjs stateful grid remove sort 【发布时间】:2011-11-01 01:48:18 【问题描述】:

我对全状态网格有疑问。我不想保存排序状态,但我想保存所有其他选项(列位置、列宽、分组等)

目前我已经尝试使用 stateEvents 选项,但它会在偶数触发时保存整个网格状态。

是否有任何选项可以将排序状态排除在保存之外??

部分网格配置:

this.gridPanel = new Ext.grid.GridPanel(
                id:'grid'+this.id,
                region:region,
                layout:'fit',
                stateful:true,
                stateEvents: ['columnmove', 'columnresize', 'groupchange', 'bodyresize'],
                loadMask:true,
                split:true,
                store: this.stores['root'+this.id],
                cm: this.getRootColumnModel(),
                sm: this.getRootSelectionModel(),

【问题讨论】:

【参考方案1】:

您可以简单地覆盖网格的applyState 方法(并删除其中的sort 状态):

this.gridPanel = new Ext.grid.GridPanel(
    // ...,
    // ...,
    applyState: function(state) 
        if (state) 
            var newState = Ext.apply(, state);
            delete newState['sort'];
            Ext.apply(this, newState );
        
    ,
    // ...
);

【讨论】:

【参考方案2】:

这不是我的解决方案,似乎来自 Sencha 支持团队,示例有效。

https://fiddle.sencha.com/#fiddle/dlc

http://www.sencha.com/forum/showthread.php?294920

【讨论】:

以上是关于extjs 有状态网格删除排序的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 3 DataGrid:如何使标题菜单中的最后一个检查项处于非活动状态

根据状态检查 extjs 网格中的行

ExtJS 3 多个状态网格(但具有不同的 stateIds)

ExtJs - 列隐藏/显示状态保存

ExtJs 4.1.0 缓冲网格 + 本地排序/过滤

如何根据复选框状态extJs 6禁用网格上的单元格