我的应用程序是基于Adobe Flex 4的
我有一个XML如下:
<data>
<GENERAL _index="0" DESCRIPTION="DEAD TIME" CODE="D" _count="1"/>
<REQUEST>
<PARAMETERS>
<page>db/ocr_valid_opr_category.xsl,db/sql.xsl</page>
<maj_cd>COC</maj_cd>
</PARAMETERS>
</REQUEST>
</data>
我想用GENERAL选项卡中的数据初始化我的列表(Adobe Flex 4),您看到的是“描述”和“代码”值,这是动态XML并且不断变化,如何将GENERAL选项卡中的数据设置为我在Flex 4中的List数据提供程序。我希望描述为LabelFeild的列表和codeCode作为列表的后端值,希望你理解???
答案 0 :(得分:0)
你可以试试这个,
我们需要更改List dataProvider的XML结构应该是XMLList,这样我们才能显示项目列表,所以我们需要在它们之间添加XML元素。
您可以访问list.selectedItem.@CODE.toString()
<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication 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:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import spark.events.IndexChangeEvent;
[Bindable]
private var xml:XML = <data>
<list>
<GENERAL _index="0" DESCRIPTION="DEAD TIME" CODE="D" _count="1"/>
<REQUEST>
<PARAMETERS>
<page>db/ocr_valid_opr_category.xsl,db/sql.xsl</page>
<maj_cd>COC</maj_cd>
</PARAMETERS>
</REQUEST>
</list>
<list>
<GENERAL _index="1" DESCRIPTION="ENOUGH TIME" CODE="E" _count="2"/>
<REQUEST>
<PARAMETERS>
<page>db/ocr_valid_opr_category.xsl,db/sql.xsl</page>
<maj_cd>COC</maj_cd>
</PARAMETERS>
</REQUEST>
</list>
</data>;
protected function list_changeHandler(event:IndexChangeEvent):void
{
Alert.show(list.selectedItem.@CODE.toString());
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:List id="list" labelField="@DESCRIPTION" dataProvider="{new XMLListCollection(XMLList(xml.list.GENERAL))}"
change="list_changeHandler(event)"/>
</s:WindowedApplication>
答案 1 :(得分:0)
首先,您应该使用顶级xml节点来包含您的xml数据:
private var xml:XML =
<xml>
<data>
<GENERAL _index="0" DESCRIPTION="DEAD TIME" CODE="D" _count="1"/>
<REQUEST>
<PARAMETERS>
<page>db/ocr_valid_opr_category.xsl,db/sql.xsl</page>
<maj_cd>COC</maj_cd>
</PARAMETERS>
</REQUEST>
</data>
</xml>;
[Bindable]
private var dataList:XMLListCollection = new XMLListCollection(xmlOne.data);
...
private function labelFunc(item:Object):String {
return item.GENERAL.@DESCRIPTION;
}
]]>
</fx:Script>
<s:VGroup>
<s:List dataProvider="{dataList}" labelFunction="labelFunc"/>
</s:VGroup>
引用“CODE”就像“DESCRIPTION”:item.GENERAL。@ CODE。