Flex4 DataGrid ItemRenderer内嵌方式

Flex4 DataGrid ItemRenderer像Flex3一直内嵌ItemRenderer会报空对象引用的错误,如:

<s:GridColumn dataField="title" headerText="Label">
    <s:itemRenderer>
        <fx:Component>
            <s:Image source="assets/img/1.jpg" width="110" height="110"/>
        </fx:Component>
    </s:itemRenderer>
</s:GridColumn>

需要添加GridItemRenderer

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
               creationComplete="application1_creationCompleteHandler()">
    <s:layout>
        <s:VerticalLayout verticalAlign="middle" horizontalAlign="center"/>
    </s:layout>
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
            [Bindable]
            private var ac:ArrayCollection = new ArrayCollection([
                {img:'1.jpg',name:'黄家驹',record:'再见理想'},
                {img:'2.jpg',name:'BEYOND',record:'海阔天空'}
            ]);        
        ]]>
    </fx:Script>
    <s:DataGrid id="gridImage" width="402" height="600" dataProvider="{ac}">
        <s:columns>
            <s:ArrayList>
                <s:GridColumn dataField="img" headerText="ID" width="110">
                    <s:itemRenderer>
                        <fx:Component>
                            <s:GridItemRenderer>
                                <s:Image source="assets/img/{data.img}" width="110" height="110"/>
                            </s:GridItemRenderer>
                        </fx:Component>
                    </s:itemRenderer>
                </s:GridColumn>
                <s:GridColumn dataField="name" headerText="姓名" width="90"></s:GridColumn>
                <s:GridColumn dataField="record" headerText="专辑" width="200"></s:GridColumn>
            </s:ArrayList>
        </s:columns>
    </s:DataGrid>
</s:Application>

 

你可能感兴趣的:(itemRenderer)