Ошибка при расширении AdvancedDataGridRenderer - PullRequest
0 голосов
/ 28 марта 2011

Я установил пакет itemrenderer следующим образом:

пакет myrenderers { import 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]

Может кто-нибудь подсказать, как мне с этой проблемой столкнуться?

Спасибо

1 Ответ

0 голосов
/ 28 марта 2011

Во-первых, я бы порекомендовал вам расширить свой пользовательский headerRenderer с AdvancedDataGridHeaderRenderer вместо AdvancedDataGridItemRenderer.

Во-вторых, похоже, что вы смешиваете mx:DataGrid с mx:AdvancedDataGrid. Я думаю, что это причина вашей ошибки приведения типа. Убедитесь, что ваш MXML выглядит примерно так:

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