2011-10-14 25 views
1

我試圖訪問在FlexDataGrid的nextLevelRenderer中定義的CheckBoxList組件。你怎麼做到這一點?我想我可以使用getLevelForItem(arg)並傳遞給FlexDataGrid的selectedItem,但我沒有得到它的任何地方。Flexicious:訪問nextLevelRenderer中的數據

此外,在線上有靈活的教程的好地方嗎?我找不到任何東西。

感謝您的幫助!

回答

2

Fumeng,試圖訪問單元格對象可能不是最好的方法來做到這一點。在您的級別渲染器中,當用戶修改複選框列表時,您應該在數據提供者上設置一些屬性(如果您(作爲IFlexDataGridCell).rowInfo.data,您將獲得相關數據對象的句柄,然後可以訪問直接從你的數據對象中獲得的值

如果你真的必須使用這個單元格,那麼網格有一個bodyContainer對象,它可以讓你進入網格的腹部。渲染細胞。對於這些,你需要遍歷行。

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