我創建了一個填充了遠程數據的表格。我用一個創建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