2011-08-12 26 views
0

我正在使用Array集合生成一個datagrid。當生成datagrid時,會在網格結尾處創建一些額外的行。我如何刪除多餘的行或阻止它們生成。面對數據網格中的額外行嗎?

我的代碼生成網格

private function createGrid(dataPrvdr:ArrayCollection, columnsValue:Array /*of Objects*/ = null):void 
     { 
      if (dataPrvdr && dataPrvdr.length) 
      { 
       includeInLayout = true; 
       var grid:DataGrid = new DataGrid(); 

       if (columnsValue) 
       { 
        var cols:Array = grid.columns; 
        for (var i:int = 0; i < columnsValue.length; i++) 
        { 
         for (var prop:String in columnsValue[i]) 
         { 
          //addDataGridColumn(prop, columnsValue[i][prop], grid); 
          cols.push(DataGridColumn(columnsValue[i][prop])); 
         } 
        } 

        grid.columns = cols; 
       } 

       grid.dataProvider = dataPrvdr; 
       grid.percentWidth = 99; 
       grid.styleName = "dataGridReport"; 
       grid.setStyle("headerBackgroundSkin",DataGridHeaderBlueSkin); 

       grid.sortableColumns = false; 
       grid.editable = false; 
       grid.variableRowHeight = true; 
       grid.resizableColumns = false; 

       grid.rowCount = grid.dataProvider.length; 
       grid.headerHeight = 20; 
       grid.rowHeight = 16; 
       grid.verticalScrollPolicy = ScrollPolicy.OFF; 
       addElement(grid); 

       if (!grids) 
        grids = []; 

       grids.push(grid); 
       grid.addEventListener("multiLineLabelItemRendererHeightChanged", rendererHeightChanged, false, 0, true); 
       grid.addEventListener(FlexEvent.CREATION_COMPLETE, function (event:FlexEvent):void 
       { 
        grid.invalidateSize(); 
       }, false, 0, true); 
      } 
     } 

感謝

回答

1

當您設置DataGrid的height屬性,它會覆蓋rowCount

你可以在你的代碼中設置height爲:

grid.height = grid.dataProvider.length * grid.rowHeight + grid.headerHeight; 

歡呼聲,

+0

嗨謝謝,我用Rowheight線檢查此解決方案,但沒有它,但成功 - 錯誤仍然相同。任何其他方式來解決它。謝謝 –

+0

在你的例子中,你可以設置它如下: 'grid.height = dataPrvdr.length * 16 + 20;' –

+0

是的,實際上我與rowHeight屬性混淆,所以我專門設置它,並且動態計數。感謝你的解決方案讓我的生活變得簡單 –