2012-01-26 5 views
0

플렉스에서 DataGrid를 만들려고합니다. 문제는 데이터를 100 % 동적으로 유지하려는 것입니다. 즉 열 & 데이터입니다.플렉스에서 동적 DataGrid를 만드는 방법

기본적으로 데이터베이스 쿼리에서 결과 집합을 통해 데이터 그램을 채울 필요가 있습니다.이 데이터는 표준 java spring jdbc dao 계층을 통해 수집됩니다. 쿼리는 'select * from tablename'과 같이 일반적인 쿼리이므로 결과 집합이 쿼리에서 쿼리로 변경 될 수 있습니다.

내 계획은이 결과 집합을 Java 객체의 형식으로 변환하는 것이고, 초기 생각은 행에 대한 열 이름과 값을 포함하는 일종의지도입니다.

내가 고민하는 비트는이 결과 집합을 (granites를 통해) ActionScript 객체로 변환해야만 데이터 테이블을 채울 수 있다는 것입니다.

동적으로 DataGrid에 열을 추가하는 방법과 데이터 필드 개체를 통해 데이터를 연결하는 방법에 대한 예제가 많이 있습니다. 그러나 내가 얼마나 많은 열을 가질 지 알지 못하면 어떻게해야합니까? 열 이름이 무엇인지.

희망이 있습니다.

감사

답변

1

당신이 알고있는 경우, 동적으로 열을 만드는 방법을, 그 다음 무엇을 당신이 붙어되도록한다?
데이터베이스에서 값을 추출하십시오. 결과를 ArrayList<Map>으로 변환하십시오. 그런 다음 actionscript에서 ArrayCollection (Object)에 매핑됩니다. 당신이 불꽃을 사용하려는 경우, 열이`ArrayCollection에 있어야한다,이 예제는 MX datagrid``에 대한 것으로,

public function resultEventHandler(event:ResultEvent) { 
    var res:ArrayCollection=event.result; 
    if (!res || res.length == 0) 
     return; 
    var dg:DataGrid=new DataGrid(); 
    var typicalObj:Object=res.getItemAt(0); 
    var columns:Array=[]; 
    //iterate through object properties 
    for (var prop:String in typicalObj) { 
     //set header text and dataField for new column 
     var c:DataGridColumn=new DataGridColumn(prop); 
     columns.push(c); 
    } 
    dg.columns=columns; 
    dg.dataProvider=res; 
    //add your datagrid on stage, do it as you need 
    view.addElement(dg); 
} 
+0

참고 : 컬렉션의 각 개체가 동일한 구조 (등록)해야합니다 때문에, 당신은 쉽게 데이터 그리드를 만들 수 있습니다 ', 그냥 관찰. – randomUser56789

관련 문제