我在列表中使用搜索选项。可以在列表中添加新项目。问题是,当我向列表中添加新项目时,列表会更新,但我无法通过搜索字段搜索该项目。但刷新浏览器后,我们可以。但是每次都不可能刷新浏览器.......这个问题有什么解决方案吗?
以下是我用于搜索列表的代码。
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
答案 0 :(得分:0)
感谢您回答我的问题。 使用bindStore()方法解决了该问题。之前我正在使用load()方法将新数据呈现到商店中。但我们无法使用此方法搜索最后输入的项目。使用bindStore()方法将Changed存储绑定到列表后,问题就解决了。