데이터 그리드의 컬럼마다 스타일을 다르게 주고자 한다.
다소 허접한 방법이지만, 컬럼별 아래방법으로 각각의 스타일명을 설정 할 수 있다.
package common
{
import mx.controls.dataGridClasses.DataGridColumn;
import mx.styles.CSSStyleDeclaration;
import mx.styles.StyleManager; public class DataGridColumn extends mx.controls.dataGridClasses.DataGridColumn
{
public function DataGridColumn(columnName:String=null)
{
super(columnName);
}
private function styleChange():void{
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("."+_styleName);
if(style == null) return;
var obj:uint = style.getStyle("backgroundColor");
if(obj == 0 || isNaN(obj)) return;
this.setStyle("backgroundColor", obj);
}
private var _styleName:String;
private var styleNameChange:Boolean;
public function set styleName(name:String):void{
if(this._styleName == name) return;
this._styleName = name;
this.styleChange();
}
public function get styleName():String{
return this._styleName;
}
}
}
위와 같이 간단하게 만들면 사용하는곳에서
css
사용
<mx:DataGrid>
<mx:columns>
<mx:DataGridColumn/>
<mx:DataGridColumn />
<com:DataGridColumn styleName="editColumn"/>
</mx:columns>
</mx:DataGrid>
위에서는 backgroundColor만 하였지만
좀더 스타일 항목을 추가하고자 하면
DataGridColumn 에서 지원하는 스타일을 구현하면 되고
지원하지 않는건 직접 구현하시면 되겠습니다.
다소 허접한 방법이지만, 컬럼별 아래방법으로 각각의 스타일명을 설정 할 수 있다.
package common
{
import mx.controls.dataGridClasses.DataGridColumn;
import mx.styles.CSSStyleDeclaration;
import mx.styles.StyleManager; public class DataGridColumn extends mx.controls.dataGridClasses.DataGridColumn
{
public function DataGridColumn(columnName:String=null)
{
super(columnName);
}
private function styleChange():void{
var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("."+_styleName);
if(style == null) return;
var obj:uint = style.getStyle("backgroundColor");
if(obj == 0 || isNaN(obj)) return;
this.setStyle("backgroundColor", obj);
}
private var _styleName:String;
private var styleNameChange:Boolean;
public function set styleName(name:String):void{
if(this._styleName == name) return;
this._styleName = name;
this.styleChange();
}
public function get styleName():String{
return this._styleName;
}
}
}
css
.editColumn{
backgroundColor:#ff0000;
}
backgroundColor:#ff0000;
}
사용
<mx:DataGrid>
<mx:columns>
<mx:DataGridColumn/>
<mx:DataGridColumn />
<com:DataGridColumn styleName="editColumn"/>
</mx:columns>
</mx:DataGrid>
위에서는 backgroundColor만 하였지만
좀더 스타일 항목을 추가하고자 하면
DataGridColumn 에서 지원하는 스타일을 구현하면 되고
지원하지 않는건 직접 구현하시면 되겠습니다.
'Flex / AIR / AS' 카테고리의 다른 글
[AS3.0] 소수점 절삭 (2) | 2009.11.06 |
---|---|
클래스 생성시 주의할 점 (2) | 2009.11.03 |
ToolTip 텍스트의 줄바꿈 (0) | 2009.10.16 |
Actionscript에서 ItemRenderer 사용하기. (6) | 2009.10.15 |
IViewCursor를 이용한 아이템 검색 (0) | 2009.10.14 |