2010-02-25 118 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); 
     }