现在的位置: 首页 > 综合 > 正文

mx:DataGrid使用

2013年11月16日 ⁄ 综合 ⁄ 共 2253字 ⁄ 字号 评论关闭

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>

抱歉!评论已关闭.