我有一个按钮,我想在搜索结果的末尾显示重要的内容。为此,我已将'filter'属性添加到我的表行。我需要的是一种获取该行的方法(例如过滤器匹配),无论输入到搜索栏中的是什么。我假设我需要某种形式的通配符。做了一些研究,我还没有找到任何简单地向我展示通配符的东西。我似乎使用正则表达式的大多数结果。那么,有可能这样做吗?
search : Ti.UI.createSearchBar({
barColor : '#666',
height : '45dp',
top : 0,
showCancel : false
}),
filterAttribute : 'filter',
//Above is from the Table code, below is the row's code.
var buttonRow = Ti.UI.createTableViewRow({
backgroundImage : $$.components.RowBG,
selectionStyle : 'none',
height : '60dp',
filter : 'I NEED THIS FILTER TO RETURN NO MATTER WHAT IS INPUTTED IN SEARCH'
});
答案 0 :(得分:0)
我不确定如何使用通配符,但您可以动态更改最后一行的'filter'属性与搜索值相同:
var data = ['oranges', 'grapes', 'lemons', 'kiwi', 'apples', 'limes'];
var rows = [];
for (var i = 0; i < data.length; i++) {
var row = Ti.UI.createTableViewRow({
title : data[i],
filter : data[i]
});
rows.push(row);
}
var magicRow = Ti.UI.createTableViewRow({
title : 'I am always here',
filter : 'set by code'
});
rows.push(magicRow);
var search = Titanium.UI.createSearchBar({
barColor : '#000',
showCancel : true,
height : 43,
top : 0,
});
search.addEventListener('change', function(e) {
// Set the last row filter to the current search value
magicRow.filter = e.source.value;//
//table.updateRow(rows.length - 1, magicRow,{animationStyle:Ti.UI.iPhone.RowAnimationStyle.NONE}); <- Should work but flickers
// setting the data seems to work better
table.data = rows;
});
var table = Ti.UI.createTableView({
data : rows,
filterAttribute : 'filter',
search : search
});
这是在使用Titanium SDK 2.0.1.GA2的iOS上测试的