2011-03-28 5 views
0

J'ai mis le paquet itemRenderer comme ça:Erreur lors de l'extension AdvancedDataGridRenderer

myrenderers de paquet { import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;

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

}

Cependant quand je les lignes suivantes dans mon tag AdvancedDataGridColumn,

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

     </mx:headerRenderer> 

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

     </mx:itemRenderer> 

Je reçois l'erreur suivante:

TypeError: Error #1034: Type Coercion failed: cannot convert mx.controls.dataGridClasses::[email protected] 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]

Quelqu'un peut-il suggérer comment je peux venir sur ce problème?

Merci

Répondre

0

D'abord, je vous recommande de prolonger votre headerRenderer personnalisé à partir AdvancedDataGridHeaderRenderer au lieu de AdvancedDataGridItemRenderer. Deuxièmement, il semble que vous mélangez mx:DataGrid avec le mx:AdvancedDataGrid. Je suppose que c'est la cause de votre erreur de coercition de type. Assurez-vous que votre MXML ressemble à ceci:

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