<mx:XML id="inputData" >
<Tulokset>
<Tulos>
<id>xx1</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx2</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx3</id>
<group>yyy</group>
</Tulos>
</Tulokset>
</mx:XML>
我试图在没有AdvancedDataGrid的情况下在应用程序上显示这样的内容。
<checkbox> id
<checkbox> id
<checkbox> id
<checkbox> id
....
答案 0 :(得分:1)
您可以使用嵌套转发器和e4x执行此操作。我不知道在e4x中获取唯一组名的方法,但您可以使用ActionScript包装函数来完成。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
private static function Unique(list:XMLList):XMLList
{
var found:Object = new Object();
var output:XML = <root />;
for each(var node:XML in list)
{
var value:String = node.text().toString();
if (!found[value])
{
output.appendChild(node.copy());
found[value] = true;
}
}
return output.children();
}
]]>
</mx:Script>
<mx:XML id="inputData" >
<Tulokset>
<Tulos>
<id>xx1</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx2</id>
<group>xxx</group>
</Tulos>
<Tulos>
<id>xx3</id>
<group>yyy</group>
</Tulos>
</Tulokset>
</mx:XML>
<mx:Repeater id="groupRepeater" dataProvider="{Unique(inputData.Tulos.group)}">
<mx:Label text="{groupRepeater.currentItem}" fontWeight="bold" />
<mx:Repeater id="tulosRepeater" dataProvider="{inputData.Tulos.(group==groupRepeater.currentItem)}">
<mx:Label text="{XML(tulosRepeater.currentItem).id}" />
</mx:Repeater>
</mx:Repeater>
</mx:Application>