controller/courselib.js
先定义
config: {
refs: {
searchField: 'searchfield'
},
control: {
searchField: {
keyup: 'onSearchKeyUp'
}
}
}
方法:
onSearchKeyUp:function(field) {
var value = textfield.getValue(), //field为传回来的按键值,通过field.getValue来获得
store = Ext.getStore('smsStore');
store.clearFilter();
if (value) {
//the user could have entered spaces, so we must split them so we can loop through them all
var searches = value.split(' '), //去除搜索栏用户输入的空格
regexps = [],
i;
//loop them all
//开始搜索
for (i = 0; i < searches.length; i++) {
//if it is nothing, continue
if (!searches[i]) continue;
//if found, create a new regular expression which is case insenstive
//new RegExp为创立新的正则表达式 将得到的文本忽略大小写 形成新的数组regexps
regexps.push(new RegExp(searches[i], 'i')); //i的意思为ignore case(忽略大小写)
}
//now filter the store by passing a method
//the passed method will be called for each record in the store
//添加数据过滤器
store.filter(function(record) {
var matched = [];
//loop through each of the regular expressions
for (i = 0; i < regexps.length; i++) {
var search = regexps[i],
didMatch = record.get('CONTENT').match(search) ;
//if it matched the coursename, push it into the matches array
matched.push(didMatch);
}
//if nothing was found, return false (dont so in the store)
if (regexps.length > 1 && matched.indexOf(false) != -1) {
return false;
} else {
//else true true (show in the store)
return matched[0];
}
});
}