您的位置:首页 > 其它

sencha touch 搜索功能search的实现

2014-07-13 14:22 489 查看
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];
}
});
}




原文链接地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: