【问题标题】:Error when extending AdvancedDataGridRenderer扩展 AdvancedDataGridRenderer 时出错
【发布时间】:2011-03-28 12:42:57
【问题描述】:

我已经这样设置了 itemrenderer 包:

包 myrenderers { 导入 mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;

public class theHeaderRenderer extends AdvancedDataGridItemRenderer
{
    public function theHeaderRenderer()
    {
        super();
        setStyle("verticalAlign","middle"); 
    }
}

}

但是,当我在 AdvancedDataGridColumn 标记中包含以下行时,

            <fx:Component>
                <myrenderers:theHeaderRenderer"/>
            </fx:Component>

        </mx:headerRenderer>

            <fx:Component>
                <renderers:someotherrenderer/>
            </fx:Component>

        </mx:itemRenderer>

我收到以下错误:

TypeError: Error #1034: Type Coercion failed: cannot convert mx.controls.dataGridClasses::DataGridListData@ac84f81 to mx.controls.advancedDataGridClasses.AdvancedDataGridListData. at mx.controls.advancedDataGridClasses::AdvancedDataGridItemRenderer/set listData()[E:\dev\4.x\frameworks\projects\datavisualization\src\mx\controls\advancedDataGridClasses\AdvancedDataGridItemRenderer.as:232] at mx.controls::DataGrid/http://www.adobe.com/2006/flex/mx/internal::calculateHeaderHeight()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\DataGrid.as:2182] at mx.controls.dataGridClasses::DataGridHeader/measure()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\dataGridClasses\DataGridHeader.as:201] at mx.core::UIComponent/measureSizes()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8216] at mx.core::UIComponent/validateSize()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8140] at mx.managers::LayoutManager/validateSize()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:617] at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:709] at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]

谁能建议我如何解决这个问题?

谢谢

【问题讨论】:

    标签: apache-flex flex4 advanceddatagrid


    【解决方案1】:

    首先,我建议您从 AdvancedDataGridHeaderRenderer 而不是 AdvancedDataGridItemRenderer 扩展您的自定义 headerRenderer。

    其次,您似乎将mx:DataGridmx:AdvancedDataGrid 混合在一起。我想这就是你的类型强制错误的原因。确保您的 MXML 看起来像这样:

    <mx:AdvancedDataGrid>
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="foo" headerRenderer="myrenderers.theHeaderRenderer"/>
        </mx:columns>
    </mx:AdvancedDataGrid>
    

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多