1.简单的格子直接使用某个字段的用 dataField
2.复杂点需要对字段进行计算转换的使用 labelFunction
3.最复杂的有图片、颜色要求的使用 itemRenderer, 必须要s:MXDataGridItemRenderer ,跟list的ItemRenderer不一样。
<mx:DataGrid
id="c_dg_items"x="0" y="0" width="489" height="322"
draggableColumns="false"
useRollOver="false"
selectable="false"
rowHeight="50"
paddingTop="0" paddingBottom="0"
visible="true">
<mx:columns>
<mx:DataGridColumn headerText="物品" width="50" itemRenderer="com.funcity.mmo.mh.ui.panels.auction.buy.ItemRenderer" />
<mx:DataGridColumn headerText="物品名" itemRenderer="com.funcity.mmo.mh.ui.panels.auction.buy.NameRenderer"/>
<mx:DataGridColumn headerText="等级" labelFunction="genLevel" textAlign="center"/>
<mx:DataGridColumn headerText="职业" labelFunction="genMenpai" textAlign="center"/>
<mx:DataGridColumn headerText="总价" itemRenderer="com.funcity.mmo.mh.ui.panels.auction.buy.PriceRenderer"/>
<mx:DataGridColumn headerText="购买" width="50" itemRenderer="com.funcity.mmo.mh.ui.panels.auction.buy.BuyRenderer"/>
</mx:columns>
</mx:DataGrid>
private function genLevel(item:Object, column:DataGridColumn):String
{
return ("Lv." + item.level);
}
private function genMenpai(item:Object, column:DataGridColumn):String
{
return LogicConfig.ID_TO_MENPAI[item.menpai];
}
<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="50" height="50"
focusEnabled="true"
xmlns:controls="com.funcity.mmo.mh.ui.controls.*">
<fx:Script>
<![CDATA[
public override function set data(obj:Object):void
{
if(obj.super_type == 1 || obj.super_type == 2)
{
c_cell_item.data = obj.b_blob;
}
else if(obj.super_type == 3 || obj.super_type == 4)
{
c_cell_item.data = null;
}
}
]]>
</fx:Script>
<controls:Cell verticalCenter="0" horizontalCenter="0" id="c_cell_item" x="8" y="8">
</controls:Cell>
</s:MXDataGridItemRenderer>