Javascript extjs4.1网格&x27;s分组功能启用和禁用问题

Javascript extjs4.1网格&x27;s分组功能启用和禁用问题,javascript,extjs,extjs4.1,extjs-grid,extjs-stores,Javascript,Extjs,Extjs4.1,Extjs Grid,Extjs Stores,我使用的是ExtJS4.1。我的应用程序有两个网格。两个网格都有分组功能(我使用两个唯一的分组功能)两个网格都使用单一存储。每个网格都有两个按钮,用于启用和禁用分组功能。这一切都很好 问题:当我在一个网格中禁用分组功能并打开第二个网格时,即使网格和分组功能不同,第二个网格中的分组功能也会被禁用。我不确定这种行为的原因是什么 请使用此复制问题并查看代码 Use fiddle to see the code 谢谢!!!1这将有效 看起来分组功能实际上是在网格后面的存储上执行的。由于在两个网格中使用

我使用的是ExtJS4.1。我的应用程序有两个网格。两个网格都有分组功能(我使用两个唯一的分组功能)两个网格都使用单一存储。每个网格都有两个按钮,用于启用和禁用分组功能。这一切都很好

问题:当我在一个网格中禁用分组功能并打开第二个网格时,即使网格和分组功能不同,第二个网格中的分组功能也会被禁用。我不确定这种行为的原因是什么

请使用此复制问题并查看代码

Use fiddle to see the code
谢谢!!!1

这将有效

看起来分组功能实际上是在网格后面的存储上执行的。由于在两个网格中使用相同的存储,每个分组插件就像两个不同的灯开关控制同一个灯泡

如果您想分离网格行为,只需定义一个新的存储,并为每个网格创建两个独立的存储实例(参见我的JSFIDLE fork)

这样,grid1=store1上的所有操作对grid2=store2没有影响,包括过滤、排序等

希望这就是你想要的:-)

这会有用的

看起来分组功能实际上是在网格后面的存储上执行的。由于在两个网格中使用相同的存储,每个分组插件就像两个不同的灯开关控制同一个灯泡

如果您想分离网格行为,只需定义一个新的存储,并为每个网格创建两个独立的存储实例(参见我的JSFIDLE fork)

这样,grid1=store1上的所有操作对grid2=store2没有影响,包括过滤、排序等


希望这就是您想要的:-)

谢谢您的回复。但我不明白当你清除网格的分组,然后关闭主窗口,然后再次打开网格时,为什么分组功能被禁用?当我关闭窗口时,我假设网格也会随着组特征一起被破坏。现在,当我打开窗口(加载网格)时,网格应该启用分组功能。只有后者会使相关设置“被遗忘”。不过,在您的示例中,您正在定义/创建一个商店。在任何情况下,存储都不会被破坏(您不能关闭存储-至少在编程中不能:-)。在网格中,您引用的是商店。当您激活分组时,该命令将传递给引用的存储。看看这个:这是你的windows非模态代码。并排打开两个视图并更改其中一个>另一个视图将以这种方式更改tooLook:网格视图仅充当其后面存储的控制界面。如果单击列标题进行排序,网格将告诉存储:“按列X排序”,然后存储将按排序顺序返回所有数据,网格将更新其内容。但是一个商店可以同时被多个视图使用。无论是哪个视图触发了更改,它们都将在存储更改时更新(筛选、排序、分组)。谢谢你的解释,谢谢你的回复。但我不明白当你清除网格的分组,然后关闭主窗口,然后再次打开网格时,为什么分组功能被禁用?当我关闭窗口时,我假设网格也会随着组特征一起被破坏。现在,当我打开窗口(加载网格)时,网格应该启用分组功能。只有后者会使相关设置“被遗忘”。不过,在您的示例中,您正在定义/创建一个商店。在任何情况下,存储都不会被破坏(您不能关闭存储-至少在编程中不能:-)。在网格中,您引用的是商店。当您激活分组时,该命令将传递给引用的存储。看看这个:这是你的windows非模态代码。并排打开两个视图并更改其中一个>另一个视图将以这种方式更改tooLook:网格视图仅充当其后面存储的控制界面。如果单击列标题进行排序,网格将告诉存储:“按列X排序”,然后存储将按排序顺序返回所有数据,网格将更新其内容。但是一个商店可以同时被多个视图使用。无论是哪个视图触发了更改,它们都将在存储更改时更新(筛选、排序、分组)。谢谢你的解释。
Ext.define('myKindOfStore');
var store1 = Ext.create('myKindOfStore');
var store2 = Ext.create('myKindOfStore');