2011-07-21 72 views
0

我有一些,我想在Flex DataGrid的星火顯示,看起來像這樣的分層數據:的Flex數據網格中GridItemRenderer

|------|---------------------------| 
| row1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 
| in | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 
| outer|---------------------------| 
| grid | a component that spans | 
|  | over multiple columns here| 
|----------------------------------| 
| row2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 
| in | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 
| outer|---------------------------| 
| grid | a component that spans | 
|  | over multiple columns here| 
|----------------------------------| 

我想要做的就是使用自定義包含內部DataGrid的GridItemRenderer。基本概念看起來像這樣:

<s:DataGrid dataProvider="{outerDataProvider}" width="100%" height="100%" variableRowHeight="true"> 
    <s:columns> 
     <s:ArrayList> 
      <s:GridColumn dataField="name"> 
       <s:itemRenderer> 
        <fx:Component> 
         <s:DefaultGridItemRenderer /> 
        </fx:Component> 
       </s:itemRenderer> 
      </s:GridColumn> 
      <s:GridColumn> 
       <s:itemRenderer> 
        <fx:Component> 
         <s:GridItemRenderer> 
          <s:states> 
           <s:State name="normal" /> 
           <s:State name="toggled" /> 
          </s:states> 
          <s:layout> 
           <s:VerticalLayout /> 
          </s:layout> 
          <s:HGroup> 
           <s:DataGrid dataProvider="{data.innerDataProvider}" columns="{outerDocument.myDynamicGeneratedColumns}"> 
           </s:DataGrid> 
           <s:Group> 
            <s:ToggleButton label="Toggle" /> 
           </s:Group> 
          </s:HGroup> 

          <MyComponent width="100%" height="50" includeIn="toggled" /> 
         </s:GridItemRenderer> 
        </fx:Component> 
       </s:itemRenderer> 
      </s:GridColumn> 
     </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

我在添加內部DataGrid時遇到一些嚴重的性能問題。垂直滾動非常緩慢。

我一直在試圖理解要優化什麼,但我不確定從哪裏開始。內部DataGrid需要有一個動態數量的列,我想這是需要完成某些工作的部分之一。

這樣做是完全錯誤的嗎?我可以使用DataGrid的另一個組件作爲內部Grid結構並獲得更好的性能嗎?

網格基本上是一個包含圖像的網格,具體取決於每行內部的值。

DataGrid提示的任何建議或鏈接?

+0

啊有趣的東西.. DataGrid裏面的DataGrid ..從來沒有想到它。讓我們看看它是如何與周圍的其他guyz。 –

+0

呃,爲什麼使用數據網格呢?我不確定我是否理解這一觀點或數據。 –

回答

1

如何使用帶有TileLayout的列表作爲內部網格。這肯定會表現得好多了:

<s:List> 
     <s:layout> 
      <s:TileLayout/> 
     </s:layout> 
    </s:List>