2010-09-27 7 views
1

J'ai défini le DataGrid comme suitComment ajouter le nom de la colonne DataGrid dans Adobe Flex

<mx:DataGrid id="dg" width="100%" height="100%" > 

Dans la partie que je suis en train d'obtenir les détails de la base de données et le réglage de la dataProvider pour le DataGrid comme suit.

var arrayContent:ArrayCollection = new ArrayCollection(); 

       for(var i:int=0;i<assetClassDetails.length;i++) 
       { 
        var assetClass_:AssetItemClassVO = new AssetItemClassVO(); 
        var array:ArrayCollection = new ArrayCollection(); 
        var embeddableLocale:EmbeddableAssetItemClassLocale = new EmbeddableAssetItemClassLocale(); 
        var assetClassD_:AssetItemClassLocale = new AssetItemClassLocale(); 
        assetClass_ = assetClassDetails.getItemAt(i) as AssetItemClassVO; 
        array = assetClass_.assetItemClassLocale; 
        if(assetClass_ != null && array != null && array.length >0) 
        { 
        assetClassD_ = array.getItemAt(0) as AssetItemClassLocale; 

        arrayContent.addItem(new Array(assetClass_.id,assetClassD_.name,assetClassD_.description,assetClassD_.locale,assetClass_.createdby,assetClass_.createdtime,assetClass_.lastmodifiedby,assetClass_.lastmodifiedtime)); 

        }    
       } 


        dg.dataProvider = arrayContent; 

Mais après cela, je reçois le nom de la colonne comme 1,2,3,4,5 ... 8. Mais je veux définir le nom Colonne comme ID, Nom, Description, Paramètres régionaux, CreatedBy, CreatedTime, LastModifiedBy, LastModifiedTime.

Comment faire?

Aidez-nous s'il vous plaît.

+0

Pourquoi est-ce marqué C#? Et on dirait que vous avez besoin de changer arrayContent.addItem (nouveau tableau ... à arrayContent.addItem (nouvel objet (...)) – Sharun

Répondre

0

Vous n'êtes pas sûr à 100% de ce que vous essayez de faire, mais voici un exemple de liaison de données DataGrid. J'espère que cela aide.

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application initialize="init()" 
    xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 

      [Bindable] 
      private var employees:ArrayCollection; 

      private function init():void 
      { 
       employees = new ArrayCollection(); 
       employees.addItem({name: "Oscar", phone: "907.123.4567", email: "[email protected]"}); 
       employees.addItem({name: "Nimrod", phone: "907.876.5342", email: "[email protected]"}); 
      } 
     ]]> 
    </mx:Script> 

    <mx:DataGrid id="dg" color="0x323232" width="100%" rowCount="3" dataProvider="{employees}"> 
     <mx:columns> 
      <mx:DataGridColumn dataField="name" headerText="Name"/> 
      <mx:DataGridColumn dataField="phone" headerText="Phone"/> 
      <mx:DataGridColumn dataField="email" headerText="Email"/> 
     </mx:columns> 
    </mx:DataGrid> 
</mx:Application> 
+0

Merci echo! J'ai fait quelques petites modifications, enfin cela a fonctionné pour moi. – vijaysylvester

1

Je ne suis pas sûr au sujet des données sur ArrayCollection, peut-être vous pouvez vérifier mon code, je crée la table dynamique Datagrid

private function addDataGridParamColumn(tmp:String):void 
{ 
    var dgColumn:DataGridColumn = new DataGridColumn(tmp); 
    var arr:Array = dg.columns; 
    dg.headerRenderer = new ClassFactory(Label); 

    switch(tmp) 
    { 
     case "Name": 
     dgColumn.dataField = 'Name'; 
     dgColumn.width = 150; 
     dgColumn.itemRenderer = new ClassFactory(Label); 
     break; 
    } 

    arr.push(dgColumn); 
    dg.columns = arr; 
} 

vous pouvez appeler la fonction addDataGridParamColumn (ce qui est l'en-tête de nom) et ajouter un cas pour la boucle

Questions connexes