2009-08-12 7 views
0

Je ne sais pas comment faire cela, essayé plusieurs choses maintenant, donc je vais demander. Le ci-dessous montre ce que je veux. Je ne sais pas comment le faire fonctionner.Datagrid avec RadioButtonGroup itemrenderer

J'ai un AC avec plusieurs questions et réponses assoicated. Ceux-ci doivent être montrés dans un DG, et l'idée est que les lignes et les colonnes de la DG sont liées à l'AC. Par exemple, si la réponse à la question 1 est Oui, le bouton Oui doit être vrai, et les deux autres doivent être faux (comme dans le comportement normal de radiobuttongroup). Mais quand je change un bouton en cliquant dessus, le champ de données des actions de l'AC doit changer en conséquence. Suis-je assez clair ici?

C'est un outil pour les questionnaires dynamiques. Toute aide est grandement appréciée.

<?xml version = "1.0"?> 
<mx:Application xmlns:mx = "http://www.adobe.com/2006/mxml"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 

      [Bindable] 
      public var questions : ArrayCollection = new ArrayCollection([ 
       { question: 'Question 1', anwer: 'Yes' }, 
       { question: 'Question 2', anwer: 'No' }, 
       { question: 'Question 3', anwer: 'Unknown' }, ]); 
     ]]> 
    </mx:Script> 

    <mx:Panel title = "Questionaire example" height = "100%" width = "100%" paddingTop = "10" 
       paddingLeft = "10" paddingRight = "10"> 

     <mx:DataGrid id = "dg" width = "100%" height = "100%" dataProvider = "{questions}"> 
      <mx:columns> 
       <mx:DataGridColumn dataField = "question" headerText = "Questions"/> 
       <mx:DataGridColumn width = "80" textAlign = "center" editable = "false" 
            headerText = "Yes"> 
        <mx:itemRenderer> 
         <mx:Component> 
          <mx:HBox horizontalAlign = "center" verticalAlign = "middle"> 
           <mx:RadioButton/> 
          </mx:HBox> 
         </mx:Component> 
        </mx:itemRenderer> 
       </mx:DataGridColumn> 
       <mx:DataGridColumn width = "80" textAlign = "center" editable = "false" 
            headerText = "No"> 
        <mx:itemRenderer> 
         <mx:Component> 
          <mx:HBox horizontalAlign = "center" verticalAlign = "middle"> 
           <mx:RadioButton/> 
          </mx:HBox> 
         </mx:Component> 
        </mx:itemRenderer> 
       </mx:DataGridColumn> 
       <mx:DataGridColumn width = "80" textAlign = "center" editable = "false" 
            headerText = "Unknown"> 
        <mx:itemRenderer> 
         <mx:Component> 
          <mx:HBox horizontalAlign = "center" verticalAlign = "middle"> 
           <mx:RadioButton/> 
          </mx:HBox> 
         </mx:Component> 
        </mx:itemRenderer> 
       </mx:DataGridColumn> 
      </mx:columns> 
     </mx:DataGrid> 


    </mx:Panel> 
</mx:Application> 

Répondre

0

le ToggleButtonBar est beaucoup plus facile à utiliser qu'un RadioButton et il est fonctionnellement le même composant (régler le selectedIndex - un seul peut être sélectionné à la fois). Au lieu de placer chaque bouton radio dans sa propre colonne, placez simplement le ToggleButtonBar dans une colonne.

0

Je ne sais pas ce que vous faites allusion quand vous parlez de la zone de données « actions »:

Mais quand je change un bouton en cliquant dessus, les actions dataField du CA devrait changer en conséquence. '

Que voulez-vous que se passe lorsque vous cliquez sur 'Oui' pour la question 1?

Pour définir les données dans itemrenderers remplacer la fonction set data et toutes les données de la ligne seront présentes dans l'objet value lorsque ce moteur sera initialisé

Questions connexes