2015-08-07 4 views
0

Je suis en cours d'exécution dans un problème avec cette erreur dans mon application web flash compilationErreur: Impossible de résoudre <mx:columns> à une mise en œuvre composante

Error: Could not resolve <mx:columns> to a component implementation. 

Voici ce qui était là (et il rassemblerait)

<?xml version="1.0" encoding="utf-8"?> 
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" verticalScrollPolicy="auto"> 
<mx:AdvancedDataGrid id="myDataGrid" 
      width="100%" 
      showHeaders="false" 
      includeInLayout="{myDataGrid.visible}" 
      defaultLeafIcon="{null}" 
      horizontalGridLines="true" 
      verticalGridLines="true" 
      horizontalGridLineColor="#E4E4E4" 
      verticalGridLineColor="#E4E4E4" 
      rowCount="6" 
      minHeight="94" 
      variableRowHeight="true" 
      selectable="false" 
      > 

    <mx:columns> 
     <mx:AdvancedDataGridColumn dataField="Property" headerText="Property" backgroundColor="#E5EFF5" width="0.5" wordWrap="true"/> 
     <mx:AdvancedDataGridColumn dataField="Value" headerText="Value" backgroundColor="white" width="0.5" itemRenderer="MyCustomRenderer"/> 
     <mx:AdvancedDataGridColumn dataField="RowIdentifier" visible="false"/> 
    </mx:columns> 
</mx:AdvancedDataGrid> 
</mx:Box> 

maintenant, je veux changer la

suivante
//In ActionScript 
package widgets 
{ 
import mx.controls.AdvancedDataGrid; 

public class CustomAdvancedDataGrid extends AdvancedDataGrid 
{ 
    public function CustomAdvancedDataGrid() 
    { 
    } 

    override protected function measure():void 
    { 
     super.measure(); 
     if(this.dataProvider != null && this.dataProvider.length > 0) 
     { 
      this.measuredHeight = this.measureHeightOfItems(0, dataProvider.length); 
     } 
    } 
} 
} 


// In Modified mxml to use the subclass 
<?xml version="1.0" encoding="utf-8"?> 
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:customWidgets="widgets.*" 
    verticalScrollPolicy="auto"> 
<customWidgets:CustomAdvancedDataGrid id="myDataGrid" 
      width="100%" 
      showHeaders="false" 
      includeInLayout="{myDataGrid.visible}" 
      defaultLeafIcon="{null}" 
      horizontalGridLines="true" 
      verticalGridLines="true" 
      horizontalGridLineColor="#E4E4E4" 
      verticalGridLineColor="#E4E4E4" 
      rowCount="6" 
      minHeight="94" 
      variableRowHeight="true" 
      selectable="false" 
      > 

    <mx:columns> 
     <mx:AdvancedDataGridColumn dataField="Property" headerText="Property" backgroundColor="#E5EFF5" width="0.5" wordWrap="true"/> 
     <mx:AdvancedDataGridColumn dataField="Value" headerText="Value" backgroundColor="white" width="0.5" itemRenderer="MyCustomRenderer"/> 
     <mx:AdvancedDataGridColumn dataField="RowIdentifier" visible="false"/> 
    </mx:columns> 
</customWidgets:CustomAdvancedDataGrid> 
</mx:Box> 

J'ai ajouté mx.swc au chemin du compilateur Flex comme suggéré dans un autre lien de stackoverflow mais cela n'a pas aidé.

Toute aide est appréciée.

+0

Quelqu'un pourrait-il suggérer comment cela peut se faire en actionscript peut-être? – user2789284

Répondre

2

Étant donné que votre sous-classe de AdvancedDataGrid est dans un autre espace de noms, le membre columns doit être dans le même espace de noms:

<customWidgets:CustomAdvancedDataGrid ...> 
    <customWidgets:columns> 
     <mx:AdvancedDataGridColumn ...> 
    </customWidgets:columns> 
</customWidgets:CustomAdvanceDataGrid> 
+0

Merci beaucoup. C'est ce qu'il a fait. Mais les colonnes sont toujours dans l'espace de noms MX? – user2789284

+0

Vous voulez dire les éléments AdvancedDataGridColumn? Oui, ils sont toujours dans l'espace de noms mx. –