我创建了一个填充了远程数据的表格。我用一个创建xml的php脚本获取这些数据。该xml看起来有点像这样:通过一行中的多个标签进行过滤(Appcelerator)
<kalender>
<afhaaldag>
<datum>Monday 30 January 2012</datum>
<afval>GFT</afval>
<afval>PMD</afval>
<afval>Restafval</afval>
</afhaaldag>
<afhaaldag>
<datum>Monday 06 February 2012</datum>
<afval>GFT</afval>
<afval>Snoeiresten</afval>
</afhaaldag>
</kalender>
我已经设法获得所有的信息在正确的位置。每一个标签在我的桌子上都有一排,每个标签里面都有一个标签。它看起来是这样的:
Monday 30 January 2012
GFT
Snoeiresten
Restafval
Monday 06 February 2012
GFT
Snoeiresten
我与这个循环增加了对“afval”的多个标签:
var allAfval = item.getElementsByTagName('afval');
var subView = Ti.UI.createView({bottom:10});
for(var j = 0; j<allAfval.length; j++)
{
var afval = allAfval.item(j).text;
var subLabel = Titanium.UI.createLabel({
text:afval,
color:'black',
left:15,
top:topPosition+20
});
topPosition +=20;
subView.add(subLabel);
subLabel.catId = afval;
dataLabels.push(subLabel);
}
row.add(subView);
table.appendRow(row);
现在我想使用户过滤标签,但因为我有多个标签在一行中,我不能使用我以前的解决方案(它工作正常,直到我添加更多的'afval'标签)。要做到我使用一个选择器过滤,这个事件监听:
picker.addEventListener('change', function(e)
{
var filteredLabels = [];
for(var k=0; k<dataLabels.length; k++)
{
if(e.row.id == 'alles')
{
filteredLabels = dataLabels;
}
else if(dataLabels[k].catId == e.row.id)
{
filteredLabels[filteredLabels.length] = dataLabels[k];
}
table.setData(filteredLabels);
}
});
的问题是,我的数组dataLabels未填充的某些原因。 @ 43f0e008
;[Ljava.lang.Object:当我在年底(之前,我闭上我的功能)我得到这个奇怪的errorMessage(不给我任何信息)做了一个警报
有人请帮助我,我真的坚持这一点。
在最后一段代码中,您只需要第一个setData(for循环内的一个) – 2012-02-01 10:46:01