【问题标题】:ExtJS4 grid: reset column order buttonExtJS4 网格:重置列顺序按钮
【发布时间】:2012-08-22 22:49:36
【问题描述】:

我正在使用包含多列数据的网格。我希望用户能够移动列(通过在网格上将 enableColumnMove 属性设置为 true),但我还需要能够将列顺序重置为我启动网格的顺序。

在创建列后无法更改其 dataIndex 属性。有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: javascript extjs grid extjs4


    【解决方案1】:

    您可以使用grid.reconfigure(null, grid.initialConfig.columns) 将网格重置为原始状态。第一个参数用于在网格上设置新的存储,但如果将其保留为空/未定义,则网格存储将不受影响。

    请注意,重新配置方法可能会对锁定的网格和带有嵌套列标题的网格产生意想不到的副作用。但对于大多数网格,它应该可以正常工作。

    【讨论】:

    • 您好,感谢您回答我的问题。我厌倦了你的策略,但没有奏效,我可能遗漏了一些东西。您应该定义 initialConfig 还是自动定义?我可以通过控制器中的引用来调用它吗?
    • initialConfig 属性应该在您通过 Ext.create 创建网格时自动定义。如果您有对网格的引用,则可以访问它。调用 reconfigure 时会发生什么?
    • 当我调用它时似乎没有发生任何事情。我只使用 Ext.create 创建包含我的面板的视口,该面板包含我的网格。我在面板的 initComponent: function() 中将网格添加到面板中,代码为: initComponent: function(){ this.items = [{ xtype: 'grid' }]; this.callParent(参数); }
    • 这仍然会在幕后调用 Ext.create 的一些变体。创建网格时,需要在配置对象中有列定义。所以 grid.initialConfig.columns 应该一直存在。您是否尝试过在调试器中检查网格以查看对象的外观?
    • 我很难找到足以使用它的萤火虫。我想我只是将列设为静态以避免重置它们:/
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2012-06-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多