ExtJS链式商店添加记录

时间:2015-10-29 13:27:10

标签: extjs

我需要两个具有几乎相同布局和数据的商店,我想要使用链式商店。

在商店1中,我加载了两十个左右的记录,并将其绑定到一些多选组合框:

data:[{
  name: 'Red items',
  color: 'red',
},{
  name: 'Yellow items',
  color: 'yellow'
}]

因此,从该组合框中,您可以选择项目是否应为红色和/或黄色。

然后我有一个项目列表,我根据标记字段进行过滤。该标记字段将为我提供以下内容:商店1中的所有商品以及其他

{
  name:'Items without color',
  color: false
},{
  name:'Items with any colors',
  color: true
}

(因此在组合框和标记字段中显示完全相同的选择是没有意义的。)

我想我会从前一个派生出后一个商店,然后我会以某种方式向该商店添加两个记录。但是当我尝试将记录添加到第二个商店时,它也会将记录添加到第一个商店。 然后,每当我将新记录加载到第一个商店时,不仅是该商店的记录在第二个商店中更新,而且其他记录也会丢失。

有人可以对细节有所了解吗?

1 个答案:

答案 0 :(得分:0)

这只是行不通;一个人不能将记录添加到ChainedStore,只隐藏一些(使用过滤器)。那么工作如下:

将Store 2设为正常商店并加载到其中

data:[{
  name:'Items without color',
  color: false
},{
  name:'Items with any colors',
  color: true
},{
  name: 'Red items',
  color: 'red',
},{
  name: 'Yellow items',
  color: 'yellow'
}]

并使用Store 2作为源,将Store 1作为链式商店,以及通过隐藏删除某些项目的过滤器:

filterFn:function(item) {return Ext.isBoolean(item.get("color"); }