2010-02-25 67 views
1

我創建了一個並排共享相同列的多個數據網格組件(每個數據網格與之前的數據網格相同,但數據不同)。Flex dataGrid列缺少標題文本

問題

頁眉文字只顯示了在最後數據網格。如何讓文本顯示在所有的datagrid頭文件中?

這裏是我如何實例化組件。

<common:PageDataGrid width="100%" height="100%" 
     numGroups="5" numRows="9" dataProvider="{createData(5, 9)}"> 
     <common:columns> 
      <mx:DataGridColumn dataField="ext" headerText="EXT." width="45"/> 
      <mx:DataGridColumn dataField="name" headerText="ASSIGNED TO"/> 
     </common:columns> 
    </common:PageDataGrid> 

這裏是我正在創建的DataGrid中

 for(var i:uint=0; i < _numGroups; i++) 
     { 
      dataGrid = new DataGrid(); 
      dataGrid.headerHeight = 25; 
      dataGrid.rowCount = _numRows; 
      dataGrid.rowHeight = 25; 
      dataGrid.percentWidth = 100; 
      dataGrid.dataProvider = dataGridProviders.getItemAt(i); 

      dataGrid.columns = this._columns; 

      dataGrid.addEventListener(DataGridEvent.HEADER_RELEASE, onHeaderRelease); 

      this.addChild(dataGrid); 
     } 

回答

1

需要做的datagridcolumns的深層副本之前,我分配他們到datagird。這是我需要做的。

 for(var i:uint=0; i < _numGroups; i++) 
     { 
      dataGrid = new DataGrid(); 
      dataGrid.headerHeight = 25; 
      dataGrid.rowCount = _numRows; 
      dataGrid.rowHeight = 25; 
      dataGrid.percentWidth = 100; 
      dataGrid.dataProvider = dataGridProviders.getItemAt(i); 

      // Deep Copy   
      registerClassAlias("mx.controls.dataGridClasses.DataGridColumn", DataGridColumn); 
      var columnsCopy:Array = new Array(this._columns.length); 
      for(var j:uint=0; j < this._columns.length; j++) 
      { 
       columnsCopy[j] = ObjectUtil.copy(this._columns[j]) as DataGridColumn; 
      } 
      // End Deep Copy 
      dataGrid.columns = columnsCopy; 

      dataGrid.addEventListener(DataGridEvent.HEADER_RELEASE, onHeaderRelease); 

      this.addChild(dataGrid); 
     }