2009-07-03 6 views
0

Je suis en train de mettre en œuvre les éléments suivants:Sélection d'une case à cocher et suppression d'une ligne de grille de données dans Flex

  1. La première colonne de DataGrid a une case à cocher.
  2. Cochez les cases, puis supprimez la colonne DataGrid.
  3. Dynamiquement, ajoutez une case à cocher lorsque la ligne est ajoutée dynamiquement.
  4. Ne pas afficher la case à cocher si les données sont maintenant dans la ligne.

Quelqu'un peut-il donner des conseils?

+0

« 2> Cochez les cases, puis supprimez la colonne DataGrid » Voulez-vous dire « Supprimer la ligne DataGrid »? – zinovii

+0

Ya..delete ligne, pas de colonne. Pardon. – user120118

+0

Étrange. Ça marche pour moi. Parfois, l'événement de modification de la case à cocher n'est traité que lorsque vous cliquez sur une autre ligne de la grille de données –

Répondre

3

Je suppose que vous voulez supprimer une ligne et non une colonne. Les travaux suivants

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
       layout="vertical"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.events.IndexChangedEvent; 
      import mx.collections.ArrayCollection; 
      import mx.controls.Alert; 

      [Bindable] 
      private var ac:ArrayCollection=new ArrayCollection([{name: "John", shouldDelete: true}, {name: "Joe", shouldDelete: false}, {name: "Jill", shouldDelete: false}]) 


      private function deleteRows() 
      { 
       for each (var row:Object in ac) 
       { 
        if (row.shouldDelete == true) 
        { 
         var i:int=ac.getItemIndex(row); 
         ac.removeItemAt(i); 
        } 
       } 
      } 
     ]]> 
    </mx:Script> 

    <mx:VBox> 
     <mx:DataGrid id="dg" 
        dataProvider="{ac}"> 
      <mx:columns> 
       <mx:DataGridColumn dataField="name"> 

       </mx:DataGridColumn> 
       <mx:DataGridColumn id="col2" 
            editorDataField="selected" 
            rendererIsEditor="true" 
            dataField="data.shouldDelete"> 
        <mx:itemRenderer> 
         <mx:Component> 
          <mx:CheckBox label="Test" 
             selected="{data.shouldDelete}" 
             change="data.shouldDelete=selected"/> 
         </mx:Component> 
        </mx:itemRenderer> 
       </mx:DataGridColumn> 

      </mx:columns> 

     </mx:DataGrid> 
     <mx:Button label="delete" 
        id="deleteBtn" 
        click="deleteRows()"/> 

    </mx:VBox> 
</mx:Application> 
+0

La suppression ne supprime pas la ligne. Rien ne se passe en dehors de la case à cocher choisie. Une idée ? – user120118

0

Dans ItemDataBound u devrait donner activé comme fausse cellule particulière ....

Questions connexes