2

我的应用程序基于 Adob​​e 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 中的列表。我想要 Description 作为列表的 LabelFeild 和 codeCode 作为 list 的后端值,希望你明白???

4

2 回答 2

0

你可以试试这个,

我们需要将 List dataProvider 的 XML 结构更改为 XMLList,以便我们只能显示项目列表,因此我们需要在其间添加 XML 元素。

您可以访问 CODE 属性,例如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>
于 2012-11-18T10:38:20.747 回答
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。

于 2012-11-19T09:05:45.273 回答