'FLEX'에 해당되는 글 32건

  1. 2008.09.25 [FLEX] DataGrid의 한개 row에 여러개의 값들을 보여주기 1
2008. 9. 25. 15:45

[FLEX] DataGrid의 한개 row에 여러개의 값들을 보여주기



<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function showDataList():void{
id_dg.dataProvider = data_ac;
}
 
[Bindable]private var data_ac:ArrayCollection = new ArrayCollection([
{col1:1, col2:'한국', col3:'K', col4:'192.168.10.120, 192.168.10.121'},
{col1:2, col2:'미국', col3:'A', col4:'-'},
{col1:3, col2:'중국', col3:'C', col4:'192.168.10.124, 192.168.10.125, 192.168.10.128'},
{col1:4, col2:'일본', col3:'J', col4:'192.168.10.127, 192.168.10.126'}
]);            
]]>
</mx:Script>
<mx:Panel x="10" y="10" width="587" height="605" layout="absolute">
    <mx:DataGrid id="id_dg" variableRowHeight="true" height="525" width="557">  
        <mx:columns>
            <mx:DataGridColumn dataField="col1"/>
            <mx:DataGridColumn dataField="col2"/>
            <mx:DataGridColumn dataField="col3" />
            <mx:DataGridColumn dataField="col4" itemRenderer="itemRowSpanRenderer"/>
        </mx:columns>       
    </mx:DataGrid>
        <mx:Button id="id_btn" x="10" y="533" label="Button" click="showDataList()"/>

                 // Label에 포함되어 있는 데이터의 길이가 길어져서 row에 보여지지 않으면
                 // ToolTip이 생긴다.

     <mx:DataGrid id="id_dga" x="10" y="10" width="717" height="292" variableRowHeight="true">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
<mx:DataGridColumn headerText="Column 4" dataField="col4">
<mx:itemRenderer>
<mx:Component>
<mx:Label text="{data.col4}"/>  
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Panel>

</mx:Application>

//-----------------------------------------------------------------------------------------
itemRowSpanRenderer.mxml

<?xml version="1.0"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Label;
override public function set data(value:Object):void{
var str:String = value.col4;
var label:Label;
if(str.length == 1){
}
else{
var array:Array = str.split(',');
for(var i:int = 0; i < array.length; i++){
label = new Label();
label.text = array[i];
 
this.addChild(label);
}
}
}
]]>
</mx:Script>
</mx:VBox>