티스토리 뷰

Flex에서 유용하게 쓰이는 동적 컬럼 생성 아래와 같은 방법도 있다 살짝은 무식한 방법? 어쨋든 잘 작동한다. 더 좋은 방법을 나중에 함 찾아봐야겠다.
// 동적 DataGrid컬럼 생성
			private function createColumn():void
			{
				trace("Click on");
				
				topD.removeAllChildren();
				
				var adgArr:Array = new Array();
			 	var adGrid:AdvancedDataGrid = new AdvancedDataGrid();
			    
			    var oCol1:AdvancedDataGridColumn = new AdvancedDataGridColumn();
			    oCol1.headerText = "구분";
			    oCol1.dataField = "kordept";
				oCol1.width = 160;
				adgArr.push(oCol1);
			    var oCol2:AdvancedDataGridColumn = new AdvancedDataGridColumn();
			    oCol2.headerText = "배점";
			    oCol2.dataField = "rstscore";
			    oCol2.width = 60;
			    adgArr.push(oCol2);
			    
			    if( topDeptCbx.selectedData == "00000" ) {
			    	for(var i:int = 0; i < topDeptArr.length; i++ ) {
			    		var adGridColGroup:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup("adGridColGroup"+i);
					    var dCol:AdvancedDataGridColumn = new AdvancedDataGridColumn("dCol"+i);
					    var sCol:AdvancedDataGridColumn = new AdvancedDataGridColumn("sCol"+i);
			    		
			    		dCol.dataField = "gdept"+i;
			    		dCol.headerText = "목표치";
			    		dCol.width = 75;
			    		sCol.dataField = "gpoint"+i;
			    		sCol.headerText = "환산점수";
			    		sCol.width = 75;
				    	
				    	adGridColGroup.children = [dCol, sCol];
				    	adGridColGroup.headerText = topDeptArr.getItemAt(i).label;
				    	adgArr.push(adGridColGroup);
			    	}
			    } else {
			    	for(var i:int = 0; i < tempSubArr.length; i++) {
				    	var adGridColGroup:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup("adGridColGroup"+i);
					    var dCol:AdvancedDataGridColumn = new AdvancedDataGridColumn("dCol"+i);
					    var sCol:AdvancedDataGridColumn = new AdvancedDataGridColumn("sCol"+i);
			    		
			    		dCol.dataField = "gdept"+i;
			    		dCol.headerText = "목표치";
			    		dCol.width = 75;
			    		sCol.dataField = "gpoint"+i;
			    		sCol.headerText = "환산점수";
			    		sCol.width = 75;
				    	
				    	adGridColGroup.children = [dCol, sCol];
				    	adGridColGroup.headerText = tempSubArr.getItemAt(i).label;
				    	adgArr.push(adGridColGroup);
				    }
			    }
			    
			    adGrid.groupedColumns = adgArr;
			    
			    //adGrid.dataProvider = dataArr;
			    adGrid.percentWidth = 100;
			    adGrid.percentHeight = 100;
			    adGrid.sortExpertMode = true;
			    adGrid.variableRowHeight = true;
			    adGrid.lockedColumnCount = 1;
			    adGrid.horizontalScrollPolicy = "auto";
			    
			    topD.addChild(adGrid);
			
			}

필요에따라 충분히 응용이 가능 할 듯 하다.
p.s: DataGrid도 마찬가치로 ~! 똑같이 적용가능하다.
출처 : 기본 API + BlueGom 머리속~! 그래서 깔끔하지 못함 ㅎㅎ..;;

댓글