extjs网格恢复列(隐藏/显示),宽度,位置

发布于 2025-01-04 10:36:52 字数 147 浏览 1 评论 0原文

我想重置网格列(隐藏/显示)、宽度、位置而不重新加载页面。 我正在尝试这个

Ext.getCmp('inventoryResultGrid').applyState(firstState);

,但它只适用于职位。

I want to reset the grid columns (hide / show) ,width,postions without reload the page .
I am trying this

Ext.getCmp('inventoryResultGrid').applyState(firstState);

but it only working for positions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟─花易冷 2025-01-11 10:36:53

哪个 ExtJS 版本?

从 EXtJS 3.1.4 中查看 GridPanel.applyState() 的来源:在列之后应用状态确实只存储列模型配置中的值,但不会更改当前设置(位置除外)。

像这样的事情应该做(未经测试):

function restoreColumnState(grid, state) {
    var cm = grid.getColumnModel(),
        columns = state.columns,
        columnState,
        column,
        columnIndex;
    cm.suspendEvents(true);
    for (var i = 0, len = columns.length; i < len; i++) {
        columnState = columns[i];
        column = cm.getColumnById(columnState.id);
        if (column) {
            columnIndex = cm.getIndexById(columnState.id);
            cm.setHidden(i, columnState.hidden);
            cm.setColumnWidth(i, columnState.width);
            if (columnIndex != i) {
                cm.moveColumn(columnIndex, i);
            }
        }
    }
    cm.resumeEvents();
}

Which ExtJS version?

From looking at the sources of GridPanel.applyState() in EXtJS 3.1.4: Applying state after columns are indeed only stores the values in the column model's config, but does not change current settings (except for position).

Something like this should do (untested):

function restoreColumnState(grid, state) {
    var cm = grid.getColumnModel(),
        columns = state.columns,
        columnState,
        column,
        columnIndex;
    cm.suspendEvents(true);
    for (var i = 0, len = columns.length; i < len; i++) {
        columnState = columns[i];
        column = cm.getColumnById(columnState.id);
        if (column) {
            columnIndex = cm.getIndexById(columnState.id);
            cm.setHidden(i, columnState.hidden);
            cm.setColumnWidth(i, columnState.width);
            if (columnIndex != i) {
                cm.moveColumn(columnIndex, i);
            }
        }
    }
    cm.resumeEvents();
}
诗化ㄋ丶相逢 2025-01-11 10:36:52

尝试像这样的重新配置方法。

var grid = Ext.getCmp('inventoryResultGrid'); 
grid.reconfigure(grid.store, grid.initialConfig.columns);

您可以在此处找到文档 http ://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-method-reconfigure

Try reconfigure method like this.

var grid = Ext.getCmp('inventoryResultGrid'); 
grid.reconfigure(grid.store, grid.initialConfig.columns);

You can find documentation here http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-method-reconfigure

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文