flex spark DataGrid 每列的label居中显示

在flex4 里面,spark的DataGrid的列中的label 不能居中显示。也无法设置。

可以在每列中设置一下headerRenderer。

<s:DataGrid id="dg" width="100%" height="100%" verticalScrollPolicy="on" dataProvider="{dpFlat}" textAlign="center">
	<s:columns>
	     <s:ArrayList>
		<s:GridColumn headerText="ID" dataField="busJobNo" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
		<s:GridColumn headerText="级别" dataField="warnLevel" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
		<s:GridColumn headerText="信息" dataField="warningMessage" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
		<s:GridColumn headerText="时间" dataField="insTime" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
	     </s:ArrayList>
        </s:columns>
</s:DataGrid>
SparkDGHeadCenter 宣染器类如下:

<?xml version="1.0" encoding="utf-8"?>
<s:DefaultGridHeaderRenderer  xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" 
				xmlns:mx="library://ns.adobe.com/flex/mx">
	
	<s:labelDisplay>  
	        <s:Label left="0" right="0" id="labelDisplay" verticalCenter="1"  textAlign="center" fontWeight="bold" verticalAlign="middle"  />  
    </s:labelDisplay>  
	<!--left="0" right="0" top="0" bottom="0"   maxDisplayedLines="1" showTruncationTip="true"  -->
</s:DefaultGridHeaderRenderer >
这样就可以把label 居中显示了。

当然还有一种方法, 其实和上面也差不多,就是对spark DataGrid写个皮肤类。如下使用:

<s:DataGrid id="dg" width="100%" height="100%" verticalScrollPolicy="on" dataProvider="{dpFlat}" textAlign="center" skinClass="com.tm.skin.DataGridSkin">
     <s:columns>
	<s:ArrayList>
	  <s:GridColumn headerText="ID" dataField="busJobNo" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
	  <s:GridColumn headerText="级别" dataField="warnLevel" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
	  <s:GridColumn headerText="信息" dataField="warningMessage" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
	  <s:GridColumn headerText="时间" dataField="insTime" headerRenderer="com.tm.Renderer.SparkDGHeadCenter" sortable="false"/>
	</s:ArrayList>
     </s:columns>
</s:DataGrid>

DataGridSkin 皮肤类下载。
这就样可以了。


你可能感兴趣的:(datagrid,Flex,label,居中)