일반적으로 플렉스에서 db연동은  dataProvider 로  연결되는데

데이터 바인딩을 이용하게 된다.

데이터 바인딩이 이뤄지게 하려면 속성값을 표시할때 { } 기호를 써서  <mx:컴포넌트명 속성 = "{참조값}"/>  과 같이 사용한다.

액션 스크립트에서 일반적으로 선언해 사용하는 변수에 데이터 바인딩을 적용하려면

[Bindabale]

private var myData:ArrayCollection;

 

...

<mx:DataGrid dataProvider="{myData}".


     처럼  [Bindable] 을 명시해 줘야하지만  MXML에서는 내부적으로 [Bindable]이 명시 되어있기 때문에 생략해 줘도 된다.

     액션 스크립트 위의 구문을  MXML로 표기하면

private var myData:ArrayCollection;

 

...

<mx:DataGrid dataProvider="{myData}".  처럼만 표기해주면 된다.


   dataProvider  :  컴포넌트 간 데이터 연결 창구

   dataProvider를 사용해서 xml  데이터 값을 사용 할 수 있게 된다.

  플렉스에는 내부 xml구조가 몇가지 있는데

 배열값을 가지는  ArrayCollection  ,  그리고  리스트형의 <XMLListColection>  등이 있다.

ArrayCollection  를 사용할 때는

<mx:ArrayCollection id="myAC">
        <mx:Object label="사과" data="apple"/>
        <mx:Object label="포도" data="grape"/>
        <mx:Object label="멜론" data="melon"/>       
        <mx:Object label="체리" data="cherry"/>                       
    </mx:ArrayCollection>

 

    XMLListColection를 사용 할때는

mx:XMLListCollection id="myData">
        <mx:XMLList>
            <item label="메뉴" data="m">
             <item label="한식" data="k">
              <item label="비빔밥" data="k1"/>
              <item label="불고기" data="k2"/>              
              <item label="냉면" data="k3"/>                            
             </item>
             <item label="중식" data="c">
              <item label="짜장면" data="c1"/>
              <item label="짬뽕" data="c2"/>              
              <item label="탕수육" data="c3"/>                         
             </item>
            </item>
        </mx:XMLList>   
    </mx:XMLListCollection>


    처럼 사용 하게 된다.

    또한  <mx:Model> 로도 표현 할 수 있는데

<mx:Model id="myData">
        <items>
            <item label="한국" data="1"/>
            <item label="미국" data="2"/>
            <item label="일본" data="3"/>
        </items>
    </mx:Model>


       이렇게 기입하고  값을  arrayCollection 으로 가지고 올때는

     <mx:ArrayCollection id="myAC" source="{ArrayUtil.toArray(myData.item)}" />


위와같이     아이디를 먼저 지정해주고   source에   AraayUtile.toArray 메소드로    myData.item   위의 파란 부분을 루트 태그로 가지고 오게된다.

또한 다른 곳에 있는 xml데이터도  연동해서 사용할 수 있는데  

      <mydata.xml>   이란 xml 데이터가       data 폴더안에 있다고 가정할때

  <mx:Model id="myData">
        <items>
            <item label="한국" data="1"/>
            <item label="미국" data="2"/>
            <item label="일본" data="3"/>
        </items>
    </mx:Model>


    <mx:Model id="myData"  source="data/mydata.xml"/>       mx모델로 먼저 가지고 온다음  
    <mx:ArrayCollection id="myAC" source="{ArrayUtil.toArray(myData.item)}" />       arraycollection으로 변환해서 사용 할 수 있다

by antilla 2010. 2. 8. 22:43
| 1 |