如何坚持ExtJS datagrid列隐藏/显示/移动/调整大小?

Chr*_*ard 7 javascript grid events datagrid extjs

我想让用户改变ExtJS数据网格的列显示(隐藏,显示,移动,调整大小)持久并存储在服务器上.有很多事件需要监听,但在网格上注册处理程序本身似乎不会导致调用警报:

    grid.on('hide', function(event)
        {
        alert('Save column order: column hidden.');
        });
    grid.on('move', function(event)
        {
        alert('Save column order: column moved.');
        });
    grid.on('resize', function(event)
        {
        alert('Save column sizes: column resized.');
        });
    grid.on('show', function(event)
        {
        alert('Save colum order: column shown.');
        });
Run Code Online (Sandbox Code Playgroud)

(我的基本方法可能是也可能不是最优的.)

我应该具体做些什么来倾听这些事件?我可以隐藏,显示,移动和调整列的大小而不会触发警报.

Amo*_*are 15

首先,您需要配置状态提供程序.
CookieProvider是ExtJS内置的唯一一个

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
Run Code Online (Sandbox Code Playgroud)

第二,标记yourGridPanel.statefultrue

第三,看看是否需要更改GridPanel的默认值.stateEvents
这基本上是" 一个事件数组,当被触发时,应触发此组件以保存其状态 "

第四,HttpStateProvider没有内置ExtJS,但Saki有一个ux(用户扩展名).

第五,如果要保存多个组件的状态,它们应该具有idstateId明确设置.

一个好的方法是使用内置的CookieProvider按预期工作,然后切换到Http Provider.