实际应用中,性别、类型等数据往往以数字形式存储在数据表中,若直接将数据表读取到Datagrid,会让用户莫名其妙。这时需用labelFunction进行转换操作。举例如下:
<s:DataGrid id="dataGrid" includeIn="list" x="14" y="55" width="909" height="200"
creationComplete="dataGrid_creationCompleteHandler(event)" requestedRowCount="4" dataProvider="{getAllProductResult.lastResult}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="name" headerText="产品名称"></s:GridColumn>
<s:GridColumn dataField="product_code" headerText="产品编码"></s:GridColumn>
<s:GridColumn dataField="unit_id" headerText="计量单位" labelFunction="getUnitName"></s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<fx:Script>
<![CDATA[
public function getUnitName(item:Object,c:GridColumn):String 注意是GridColumn,因为使用的是spark控件。
{
return unitArrayColl.getItemAt(item.unit_id-1).name; //unitArrayColl为从数据表中读取的数据集。若是性别之类,自然没有必要从数据库读取,直接使用switch语句判断。switch(item.sex) case:0 return "男"……
}
]]>
</fx:Script>
<s:DataGrid id="dataGrid" includeIn="list" x="14" y="55" width="909" height="200"
creationComplete="dataGrid_creationCompleteHandler(event)" requestedRowCount="4" dataProvider="{getAllProductResult.lastResult}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="name" headerText="产品名称"></s:GridColumn>
<s:GridColumn dataField="product_code" headerText="产品编码"></s:GridColumn>
<s:GridColumn dataField="unit_id" headerText="计量单位" labelFunction="getUnitName"></s:GridColumn>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<fx:Script>
<![CDATA[
public function getUnitName(item:Object,c:GridColumn):String 注意是GridColumn,因为使用的是spark控件。
{
return unitArrayColl.getItemAt(item.unit_id-1).name; //unitArrayColl为从数据表中读取的数据集。若是性别之类,自然没有必要从数据库读取,直接使用switch语句判断。switch(item.sex) case:0 return "男"……
}
]]>
</fx:Script>