728x90

참조
http://flexdocs.kr/docs/flex2/langref/mx/events/DataGridEvent.html

DataGird에서 Item 선택시 호출되는 이벤트 처리 입니다.
DataGird 속성은 반듯이 editable="true" 되어 있어야 해당 이벤트가 호출 됩니다.

DataGridEvent 객체

Property Value
bubbles false
cancelable false
columnIndex 0부터 시작 / DataGrid의 열의 인덱스
currentTarget 이벤트를 처리하는 event listener를 정의하는 object
dataField null
itemRenderer 편집중의 아이템에 대응하는 아이템 에디터 인스턴스
localX NaN
reason null
rowIndex 0부터 시작 / DataGrid의 행의 인덱스
target 이벤트를 dispatch한 object
Type DataGridEvent.ITEM_FOCUS_IN

이벤트 등록

1. XML 속성으로 등록

<mx:DataGrid id = "grid1" editable="true" itemFocusIn="onItemFocusIn(event)">

2. 스크립트로 등록

grid1.addEventListener(DataGridEvent.ITEM_FOCUS_IN,onItemFocusIn);

이벤트 처리

   public function onItemFocusIn(e:DataGridEvent):void {
    var item:XMLList = new XMLList(grid1.dataProvider[e.rowIndex]);
    mx.controls.Alert.show("row = " + e.rowIndex + "\nitem value = \n" + item);
   }
728x90
728x90

xmldata.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <msg>ok</msg>
  <pagemax>20</pagemax>
  <pageinx>1</pageinx>
  <data>
    <row>
      <aaa>1</aaa>
      <bbb>a</bbb>
    </row>
    <row>
      <aaa>2</aaa>
      <bbb>b</bbb>
    </row>
    <row>
      <aaa>3</aaa>
      <bbb>b</bbb>
    </row>
  </data>
</root>

borad2.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
 creationComplete="xmlData1.send()">

 <mx:HTTPService id="xmlData1" url="http://localhost:8080/examples/xmldata.xml"/>

 <mx:DataGrid x="233" y="177" dataProvider="{xmlData1.lastResult.root.data.row}" width="457">
  <mx:columns>
   <mx:DataGridColumn headerText="Column 2" dataField="bbb"/>  
   <mx:DataGridColumn headerText="Column 1" dataField="aaa"/>
  </mx:columns>
 </mx:DataGrid>
 
</mx:Application>

728x90
728x90

출처
http://blog.jidolstar.com/17

columninfo.xml


<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <msg>ok</msg>
  <columninfo>
    <column>
    <name>aaa</name>
   </column>
    <column>
    <name>bbb</name>
   </column>
  </columninfo>
</root>

test.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="448"
 creationComplete="init()">
 
  <mx:HTTPService id="httpdata" url="http://localhost:8080/examples/columninfo.xml" />
 
 <mx:Script>
  <![CDATA[
   import mx.collections.*;
   import mx.controls.dataGridClasses.DataGridColumn;
   import mx.rpc.events.FaultEvent;
   import mx.rpc.events.ResultEvent;

   
   public var httpServ:HTTPService;

   [Bindable]
   public var xlcData:XMLListCollection;
   
   public function init():void
   {
    httpServ = new HTTPService();
    request("http://localhost:8080/examples/columninfo.xml");
   }  
   
   public function request(url:String, params:Object=null):void
   {
    this.httpServ.url = url;
    this.httpServ.method = "GET";
    this.httpServ.resultFormat="e4x";
    this.httpServ.addEventListener("result", resultHandler);
    this.httpServ.addEventListener("fault", faultHandler);
    this.httpServ.send(params);
   }
   
   public function resultHandler(e:ResultEvent):void
   {
    var xlData:XMLList = new XMLList(e.result);
    if(xlData.elements("msg").toString()!="ok") {
     mx.controls.Alert.show(xlData.elements("msg").toString(),"Error");
    } else {
     xlcData = new XMLListCollection(xlData.elements("columninfo"));
    }
   
    var columns : Array = grid1.columns;
    var tmpCol : DataGridColumn;
   
//    mx.controls.Alert.show(xlcData.toXMLString());
   
    var item:XML;
       for each(item in xlcData.children()) {
        tmpCol =  new DataGridColumn();
        tmpCol.headerText = item.children().text();
        columns.push(tmpCol);
       }
     
       grid1.columns = columns;      
   }
   
   public function faultHandler(e:FaultEvent):void
   {
    mx.controls.Alert.show("데이타를 읽는 중 에러\n"+e.fault.faultString);
   }
   ]]>
  </mx:Script>  
 
  <mx:DataGrid id="grid1" x="54" y="106" width="280" height="139"/>
  <mx:Button x="54" y="60" label="Button"/>
 
</mx:Application>

728x90
728x90

출처
http://flexdocs.kr/docs/flex2/langref/XMLList.html

http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=8&KEY=&SC=S&&CC=&PAGE=1&IDX=547


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="448">
 
  <mx:XMLList id="testlist">
    <column>
    <name>aaa</name>
   </column>
    <column>
    <name>bbb</name>
   </column>   
  </mx:XMLList>

  <mx:Script>
   <![CDATA[
    import mx.controls.dataGridClasses.DataGridColumn;
   
     private function createColumn():void
     {
      var columns : Array = grid1.columns;
      var tmpCol : DataGridColumn;
     
        var item:XML;
//        for (var i:uint=1; i<=testlist.length(); i++) {
        for each(item in testlist) {
         tmpCol =  new DataGridColumn();
        tmpCol.headerText = item.children().text();
        columns.push(tmpCol);  
        }
        
      grid1.columns = columns;
     }
    ]]>
  </mx:Script>
 
  <mx:DataGrid id="grid1" x="54" y="106" width="280" height="139"/>
 
  <mx:Button x="54" y="60" label="Button" click="{createColumn()}"/>

 
</mx:Application>

728x90
728x90

출처
http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=8&KEY=&SC=S&&CC=&PAGE=1&IDX=547

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="448">
  <mx:Script>
   import mx.controls.dataGridClasses.DataGridColumn;

    private function createColumn():void
    {
     var columns : Array = grid1.columns;
     var tmpCol :DataGridColumn =  new DataGridColumn();
     tmpCol.headerText = "Test";
     columns.push(tmpCol);
     
     grid1.columns = columns;
    }
  </mx:Script>
 
  <mx:DataGrid id="grid1" x="54" y="106" width="280" height="139"/>
 
  <mx:Button x="310" y="41" label="Button" click="{createColumn()}"/>
 
</mx:Application>

728x90

+ Recent posts