Flex DataGrid数据的多种显示方式

Flex DataGrid单元格显示数据有多种方式。

1.默认的是截取模式,就是对于显示不下的内容进行自动截取,会被下一列所遮盖。看下图:

Flex DataGrid数据的多种显示方式_第1张图片

2. 但是有时候我们需要能够方便的显示所有内容,但又不希望这一列变得很宽。有一个方法就是自动隐藏该单元的内容,对于数据量大的自动在后面加...,当鼠标移动到该单元格上时,能够以ToolTip的形式完全显示该单元的内容,这个我们可以采用将Label作为该列的itemRenderer办法,具体效果如下:Flex DataGrid数据的多种显示方式_第2张图片

3. 有时候我们需要DataGrid的每行内容能够显示全所有的内容,如果该列的内容比较多,那么我们希望能够自动换行显示在该列中。其实很简单,我们可以利用DataGridColumn的wordWrap属性,设为true之后的效果如下

Flex DataGrid数据的多种显示方式_第3张图片

效果2的代码如下:实际上只要设定itemRenderer="mx.controls.Label"就可以了

   <mx:DataGridColumn id="articleName" dataField="articleName" headerText="Name of the article in question" itemRenderer="mx.controls.Label" />  

public  function getDataGridColumn(columns:Array):Array{  

           var dataGridColumns:Array=new Array(); 

           for(var i:int;i<columns.length;i++){ 

                 var item:Object=columns[i];                                      

                 var column:DataGridColumn=new DataGridColumn(); 

                 var itemRenderer:DataGridCell=new DataGridCell();

                 itemRenderer.dataField=item.columnName;

                 column.dataField=item.columnName; 

                 column.headerText=item.headerText; 

            

                 column.itemRenderer=new ClassFactory(Label);

               // column.wordWrap=true;

                 column.width=item.width;                            

                 dataGridColumns.push(column);            }  

   return dataGridColumns;

  } 
效果3的代码如下:实际上只要设定wordWrap="true"就可以了 

 

<mx:DataGrid id="dataGrid" dataProvider="{arrColl}" variableRowHeight="true" width="100%" height="100%"> 

        <mx:columns> 



            <mx:DataGridColumn id="articleName" dataField="articleName" headerText="Name of the article in question" wordWrap="true" /> 



            <mx:DataGridColumn id="data" dataField="data" headerText="ID of the article" /> 



        </mx:columns> 



    </mx:DataGrid>



你可能感兴趣的:(datagrid,function,object,Flex)