在sencha中列表搜索的问题

时间:2011-08-26 09:13:33

标签: sencha-touch extjs

我在列表中使用搜索选项。可以在列表中添加新项目。问题是,当我向列表中添加新项目时,列表会更新,但我无法通过搜索字段搜索该项目。但刷新浏览器后,我们可以。但是每次都不可能刷新浏览器.......这个问题有什么解决方案吗?

以下是我用于搜索列表的代码。

xtype: 'searchfield',
placeHolder: 'Search',
name: 'searchfield',
id:'subListSearch',
listeners : {
scope: this,
'focus': function() {
Ext.getCmp('xbtn').show();

},

keyup: function(field) {

var value = field.getValue();

if (!value) {
Store.filterBy(function() {
return true;
});
} else {

var searches = value.split(' '),
regexps = [],
i;

for (i = 0; i < searches.length; i++) {
if (!searches[i]) return;
regexps.push(new RegExp(searches[i], 'i'));
};

Store.filterBy(function(record) {
var matched = [];

for (i = 0; i < regexps.length; i++) {
var search = regexps[i];

if (record.get('Name').match(search)) matched.push(true);
else matched.push(false);
};

if (regexps.length > 1 && matched.indexOf(false) != -1) {
return false;
} else {
return matched[0];
}
});
}
}
}

还有一些其他问题。我使用一些规定来过滤列表。但是当我使用搜索选项时,它会搜索整个列表,而不是搜索过滤的列表。为什么?

由于

Arun A G

1 个答案:

答案 0 :(得分:0)

感谢您回答我的问题。  使用bindStore()方法解决了该问题。之前我正在使用load()方法将新数据呈现到商店中。但我们无法使用此方法搜索最后输入的项目。使用bindStore()方法将Changed存储绑定到列表后,问题就解决了。