5

我的商店有结构:

Ext.create('Ext.data.Store', {
    fields: [
        'title'
    ],
    data: [{
        title: 'ABC'
    }, {
        title: 'ABC2'
    }, {
        title: 'ABC3'
    }, {
        title: 'ABC4'
    }, {
        title: 'ABC5'
    }, {
        title: 'ABC6'
    }]
});

因此,当我加载此商店列表时,会填充所有 6 条记录。

我只是想在按钮单击时过滤此商店 我只是想从这 6 条记录中获取一些选定的记录 可以吗?

给我一些想法或工作代码。

4

2 回答 2

7

根据标题过滤商店

Ext.getStore('storeId').filter("title", "ABC3");

清除过滤器

 Ext.getStore('storeId').clearFilter();

请参阅商店过滤器文档

更新

Ext.getStore('storeId').filterBy(function(record){
   var title = record.get('title');
   if(title == "ABC" || title == "ABC1" || title == "ABC2")
      return record;
});
于 2013-09-04T05:59:17.123 回答
0

我的方法是在我点击按钮时在商店上设置一个过滤器。在我的情况下,它是一个选择字段,并且在更改事件中我过滤了与选择字段中的当前值相比

    onChangeStatusSelectfield: function (newValue, oldValue) {
    var store = Ext.getStore('CustomVacationRequest');
    console.log('Accepted Filter');
    newValue = this.getStatusSelectfield().getValue();
    console.log(store, newValue);
    store.clearFilter();
    if (store != null);
    store.filter(function (record) {
        if (newValue == record.data.status) { //your data from the store compared to 
                                              //the value from the selectfield
            return true; 
        }
        Ext.getCmp("VacationRequestsManagerList").refresh() //refresh your list   
});

},

这只是我的控制器的一部分。根据您自己的选择和需要处理事件、按钮和存储。祝你好运!

于 2013-09-04T10:41:23.983 回答