Flex 4使用带有XML和项呈示器的数据组时出现问题

时间:2010-09-08 09:51:35

标签: xml flex data-binding flex4 itemrenderer

我有一个带有自定义项呈示器的数据组,我将它从一个停止工作的http服务绑定到XML。

我的XML:

<SDLIST>
<chartlist>
    <reportname>FACTORY STATUS</reportname>
    <reportimage>file:/D:/Work/RapidReport/Images/Charts/Vertical-Linear-Gauges.png</reportimage>
</chartlist>
<chartlist>
    <reportname>FACTORY STATUS</reportname>
    <reportimage>file:/D:/Work/RapidReport/Images/Charts/Vertical-Linear-Gauges.png</reportimage>
</chartlist>

然后我的数据组:

<s:DataGroup x="10" y="42" width="696" height="414" itemRenderer="myComponents.ChartListComp" dataProvider="{new XMLListCollection(XML(getSpeedDialList.lastResult).SDLIST.charlist)}">

我的Http服务:

<mx:HTTPService resultFormat="e4x" id="getSpeedDialList" url="{serverURL}/Reporting/GetSpeedDial.xml" useProxy="false" method="POST" fault="Alert.show('There has been an a problem with the connection.\nPlease check your internet connnection and try again.' + getSpeedDialList.url ,'Connection Error')" showBusyCursor="true"  >

我的组件使用:

{data.reportname}

我会赞成任何帮助,刚从flex 3向上移动我不知道这是什么错过的行为。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

看起来<SDLIST>是您的根标记,在这种情况下,getSpeedDialList.lastResult已指向该节点 - 您不应在e4x查询中明确提及。

<s:DataGroup x="10" y="42" width="696" height="414" 
    itemRenderer="myComponents.ChartListComp" 
    dataProvider="{getSpeedDialList.lastResult.charlist}">

你确实在创作完成或某个地方打电话给getSpeedDialList.send(),不是吗?

答案 1 :(得分:0)

我得到了它的工作。

答案是设置resultFormat =“e4x”然后使用{new XMLListCollection(XMLList(getSpeedDialList.lastResult).chartlist)}

问题似乎与数据组期望列表有关。

但是,谢谢Amarghosh指出E4X第一个节点被忽略的行为和 使用数据组注释时,Adobe Flex SDK团队的Alex Harui用于XML列表集合。