간혹 작업을 하다보면 DataGrid를 이용하여 한줄만 보여주는 상황이 온다.
물론 ArrayCollection 객체에 모든 컬럼에 해당하는 데이터가 있다면 그중 한 row만 꺼내와서 뿌리면 되지만 그렇지 않은 경우가 있다.
그런 경우라는 것은 여러곳에 흩어져있는 데이터를 취합하여 데이터그리드에 보여주는 경우다
쉽게 생각해서
var a:String = "a";
var b:String = "b";
var c:String = "c";
var d:String = "d";
이런식의 데이터를 DataGrid 컴포넌트에 한줄로 표시하는 경우이다.
방법은 간단하다. 첫번째로
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
private var obj:Object;
private function init():void{
obj = new Object();
obj.a = "a";
obj.b = "b";
dg.dataProvider = obj;
}
]]>
</mx:Script>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="column a" dataField="a" />
<mx:DataGridColumn headerText="column b" dataField="b" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
위와 Object를 생성하여 넣는 방법이다.
하지만 이 방법은 위험할 수 있다.
아래와 같이 사용하자.
p.s view Source 하려고 했는데 파일첨부에서 폴더는 못올리겠네요 ..올리는 방법좀 -_-;;;;
물론 ArrayCollection 객체에 모든 컬럼에 해당하는 데이터가 있다면 그중 한 row만 꺼내와서 뿌리면 되지만 그렇지 않은 경우가 있다.
그런 경우라는 것은 여러곳에 흩어져있는 데이터를 취합하여 데이터그리드에 보여주는 경우다
쉽게 생각해서
var a:String = "a";
var b:String = "b";
var c:String = "c";
var d:String = "d";
이런식의 데이터를 DataGrid 컴포넌트에 한줄로 표시하는 경우이다.
방법은 간단하다. 첫번째로
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
private var obj:Object;
private function init():void{
obj = new Object();
obj.a = "a";
obj.b = "b";
dg.dataProvider = obj;
}
]]>
</mx:Script>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="column a" dataField="a" />
<mx:DataGridColumn headerText="column b" dataField="b" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
위와 Object를 생성하여 넣는 방법이다.
하지만 이 방법은 위험할 수 있다.
아래와 같이 사용하자.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" >
<mx:Script>
<![CDATA[
import com.Vo;
private function init():void{
var vo:Vo = new Vo();
vo.a = "a";
vo.b = "b";
dg.dataProvider = vo;
}
]]>
</mx:Script>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="column a" dataField="a" />
<mx:DataGridColumn headerText="column b" dataField="b" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
Vo.as
package com
{
public class Vo
{
public function Vo()
{
}
public var a:String;
public var b:String;
}
}
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()" >
<mx:Script>
<![CDATA[
import com.Vo;
private function init():void{
var vo:Vo = new Vo();
vo.a = "a";
vo.b = "b";
dg.dataProvider = vo;
}
]]>
</mx:Script>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="column a" dataField="a" />
<mx:DataGridColumn headerText="column b" dataField="b" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
Vo.as
package com
{
public class Vo
{
public function Vo()
{
}
public var a:String;
public var b:String;
}
}
p.s view Source 하려고 했는데 파일첨부에서 폴더는 못올리겠네요 ..올리는 방법좀 -_-;;;;
'Flex / AIR / AS' 카테고리의 다른 글
이미지 작업 주의사항. (0) | 2009.09.07 |
---|---|
[AS3.0] Interface의 사용. (2) | 2009.08.26 |
[CSS] 스타일시트로 배열값을 받아 사용하기. (0) | 2009.08.19 |
DateFormatter 사용하기. (0) | 2009.08.17 |
[AS3.0] 각 달의 마지막 날짜 구하기 (0) | 2009.08.11 |