2011-10-14 5 views
1

FlexDataGrid의 nextLevelRenderer에 정의 된 CheckBoxList 구성 요소에 액세스하려고합니다. 어떻게 할 수 있니?Flexicious : nextLevelRenderer의 데이터에 액세스

나는 getLevelForItem (arg)을 사용할 수 있고 FlexDataGrid의 selectedItem을 전달할 수 있다고 생각했지만 아무데도 가지 않고있다.

또한, 온라인에서 유연한 자습서를 사용하기에 좋은 곳이 있습니까? 나는 아무것도 못 찾는다.

도움 주셔서 감사합니다.

답변

2

Fumeng, 세포 개체에 액세스하려는 시도가 아마도 최선의 방법이 아닙니다. 레벨 렌더러에서 사용자가 체크 박스 목록을 수정하면 데이터 제공자에 대한 일부 속성을 설정해야합니다 (iflex (IFlexDataGridCell로서의 부모) .rowInfo.data 일 경우 연결된 데이터 객체에 대한 핸들을 얻을 수 있습니다. 데이터 객체에서 직접 가져온 값

실제로 셀을 사용해야하는 경우 그리드에는 bodyContainer 객체가있어 그리드의 배로 들어갈 수 있습니다. 데이터 셀을 직접 가져올 수있는 API 메소드가 있지만 레벨에는 아무 것도 없습니다. 렌더러 세포.이 경우에는 행을 반복해야합니다.

for each(var row:RowInfo in bodyContainer.rows) //all body rows 
{ 
    if(row.rowPositionInfo.rowType == RowPositionInfo.ROW_TYPE_RENDERER){ 
    for each(var cell:ComponentInfo in row.cells){ 
     if(cell.component is FlexDataGridLevelRendererCell){ 
      //this will be your renderer 
      var yourRenderer:UIComponent = cell.component.renderer as UIComponent; 
      //depending on where you have placed the CBL, 
      //one of yourRenderer.children should be the CBL 
     } 
    } 
    } 
} 
+0

한 가지 더 명심. 행이 재활용되기 때문에이 현재로 렌더링되는 경우에만 위의 코드를 사용하여 목록을 얻을 것이다 전화하는 시간 이 코드. 따라서 사용자가 변경하고 목록을 업데이트하고보기 밖으로 스크롤 한 다음 저장 버튼을 클릭하면이 코드는 목록을 가져 오지 않습니다. 따라서 데이터 공급자를 업데이트하는 첫 번째 방법을 권장합니다. –

+0

종합적인 답변을 보내 주셔서 대단히 감사합니다 ... 매우 도움이됩니다. – fumeng