2012-08-22 49 views
1

我正在处理具有多列数据的网格。我希望用户能够移动列(通过在网格上将enableColumnMove属性设置为true),但我还需要能够将列顺序重置为我启动网格的顺序。ExtJS4网格:重置列顺序按钮

没有方法可以在创建后更改列的dataIndex属性。有没有不同的方式去做这件事?

回答

2

您可以使用grid.reconfigure(null, grid.initialConfig.columns)将网格重置回其原始状态。第一个参数是在网格上设置一个新的商店,但是如果让它保持空/未定义,那么网格商店将不受影响。

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

+0

你好,谢谢你回答我的问题。我厌倦了你的策略,但它没有奏效,我可能错过了一些东西。你应该定义initialConfig还是自动定义?我可以通过控制器中的引用来调用它? – alex9311

+0

当通过Ext.create创建网格时,应该自动定义initialConfig属性。如果您有对电网的参考,则可以访问它。当你打电话重新配置时会发生什么? – Eric

+0

我称之为没有事情发生。我只使用Ext.create创建包含我的面板的视口,其中包含我的网格。我在面板的initComponent:function()中将网格添加到我的面板中,代码为:initComponent:function(){ this.items = [xtype:'grid' }]; this.callParent(arguments); } – alex9311