0

我有一个会议室列表,他们支持的人员容量如下。数据类似于:

{
            "name" : "Room 1",
            "city" : "Mumbai",
            "capacity" : 4
},
{
            "name" : "Room 2",
            "city" : "Mumbai",
            "capacity" : 10
},
{
            "name" : "Room 3",
            "city" : "Mumbai",
            "capacity" : 6
},
{
            "name" : "Room 6",
            "city" : "Mumbai",
            "capacity" : 3
},
{
            "name" : "Room 4",
            "city" : "Mumbai",
            "capacity" : 2
}    
// etc etc

现在我想添加一个过滤器,以便当我选择需要满足应用程序的 ppl 数量时,我会向我显示所有容量大于此数字的房间。

例如:如果我说我正在寻找 4 人的房间,它应该告诉我房间 1,2,3。如果我搜索 2 个人的房间,它会显示所有房间。等等。

到目前为止,如果我使用过滤器,这就是我现在所做的:

store.filter("capacity",2) 

它只向我显示容量为 2 的房间。而不是容量更大的房间。

我应该怎么办???

4

1 回答 1

0

您需要像这样创建一个过滤器函数:

var roomFilter = new Ext.util.Filter({
    filterFn: function(item) {
        return item.capacity > 2;
    }
});

然后:

var largeRooms = store.filter(roomFilter);

P/S:如果Ext.util.Filter不适用于您的Store,您应该创建一个类型为 的数据的克隆Ext.util.MixedCollection

于 2012-04-12T12:07:01.363 回答