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>

「説明」と「コード」の値である一般タブのデータを使用してリスト (Adobe Flex 4) を初期化したいです。これは動的な XML であり、継続的に変化します。一般タブのデータをデータ プロバイダーとして設定するにはどうすればよいですかFlex 4 のリストの場合。list の LabelFeild として Description 、 list のバックエンド値として codeCode が必要です。

4

2 に答える 2

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 に答える
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 に答える