使用labelFunction格式化Datagrid的数据

实际应用中,性别、类型等数据往往以数字形式存储在数据表中,若直接将数据表读取到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>

你可能感兴趣的:(Flex)