获取搜索字段的值,然后显示匹配结果sencha touch 2

时间:2013-07-24 17:22:30

标签: extjs sencha-touch sencha-touch-2 sencha-touch-2.1

我在我的标签面板中添加了搜索图标,其中包含导航视图,其中包含停靠在顶部的工具栏中的搜索字段。我的问题是我想从搜索字段中获取值并将其发送到商店以查找匹配项。如果有任何匹配项,我希望这些项目显示在搜索字段工具栏下方的列表中。我做了很多搜索,但我找不到任何帮助我的相关例子。任何形式的帮助将不胜感激。

这是我的观点..

items: [{
    xtype: 'toolbar',
    docked: 'top',
    style: 'background:darkgray',
    items: [{
            xtype: 'searchfield',
            placeHolder: 'Search... '
    }, {
            xtype: 'button',
            iconCls: 'search',
            iconMask: true,
            ui: 'confirm',
            action: 'search-app'


    }]
 }, {//here I want to show my filtered data 
    xtype: 'list',
    itemId: 'searchlist',
    store: 'SearchItemStore',
    onItemDisclosure: true,
    emptyText: 'No data found!',
    itemTpl: '{Name}'
 }]

在我的控制器中,我调用按钮并添加如下函数:

mySearchFunction: function(element , e, eOpts) { 
    var searchPattern = this.getSearchFieldAction().getValue(); 
    var store = Ext.getStore('ProductStore');
    // here I want to set the param that has to send to the store proxy..I am really not sure how this works 
    store.find(fieldName, value, [startIndex], [anyMatch], [caseSensitive], [exactMatch] ); 
}

1 个答案:

答案 0 :(得分:0)

您正在寻找的是store.filter()方法。

store.filter('fieldToSearch', searchPattern);

请参阅此处的文档:http://docs.sencha.com/touch/2.2.1/#!/api/Ext.data.Store-method-filter

另一种选择是store.filterBy(),它将函数作为参数。如果函数返回true,则该记录包含在已过滤的商店中。 文档:http://docs.sencha.com/touch/2.2.1/#!/api/Ext.data.Store-method-filterBy