代码:
this.searchField = new Ext.form.Text({
displayField: 'name',
valueField: 'name',
editable: true,
forceSelection: true,
triggerAction: 'all',
emptyText: 'Search...',
selectOnFocus: true
});
this.searchButton = new Ext.Button({// The button press will invoke the search action
text: 'Go',
handler: this.searchButtonTap,
scope: this
});
this.topToolbar = new Ext.Toolbar({
items: [
{ xtype: 'spacer' },
this.searchField,
this.searchButton,
{ xtype: 'spacer' },
]
});
searchButtonTap: function () {
var searchText = this.searchField.getValue();
console.log(searchText);
//console.log(this.myappsList.store.getCount());
console.log(this.myappsList.store.filter('name', searchText));
//this.myappsList.store.filter(searchText);
},
在我的模特中,我有四个领域:
姓名,年龄,性别,特征
我在这里尝试的是:
在页面上的列表中显示我的数据库的内容,因为列表很长我想搜索,当用户在搜索字段中写入查询并按下搜索按钮时,调用searchButtonTap
处理程序尝试过滤并显示名称与查询中的名称相似的列表我也试过filterBy
,但这也没有用。请让我知道什么是错的?
感谢。
答案 0 :(得分:5)
你可以这样试试:
searchButtonTap: function () {
var searchTerm = this.searchField.getValue();
if (searchTerm) {
this.myappsList.store.filterBy(function(record){
var fieldData = record.data.city.toLowerCase().indexOf(searchTerm);
if (fieldData > -1 )
return record;
});
}
else {
this.myappsList.store.clearFilter();
}
},