Flex4 - DataGrid使用xml格式的数据做数据源
作者:hangge | 2014-12-16 11:07
在Flex3中,mx库的DataGrid可以直接使用XMLList格式的数据做数据源。
而Flex4中,spark库的DataGrid不能直接绑定xml,因为其dataProvider是需要实现Ilist接口的。
解决办法:使用XMLListCollection将XMLList数据封装起来再给DataGrid使用。
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<fx:XML id="dgData">
<data>
<item name="小王" sex="男"/>
<item name="小军" sex="男"/>
</data>
</fx:XML>
<s:XMLListCollection id="dgDataCollection" source="{dgData.children()}"/>
</fx:Declarations>
<s:layout>
<s:VerticalLayout gap="20" paddingLeft="20" paddingTop="20"/>
</s:layout>
<s:DataGrid dataProvider="{dgDataCollection}">
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="姓名" dataField="@name"/>
<s:GridColumn headerText="性别" dataField="@sex"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<s:DataGrid dataProvider="{new XMLListCollection(dgData.children())}">
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="姓名" dataField="@name"/>
<s:GridColumn headerText="性别" dataField="@sex"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
</s:Application>
全部评论(0)