2009-08-12 10 views
0

Ich weiß nicht, wie das geht, habe jetzt mehrere Dinge ausprobiert, also werde ich fragen. Das Folgende zeigt was ich will. Ich weiß einfach nicht, wie ich es zum Laufen bringen kann.Datagrid mit RadioButtonGroup itemrenderer

Ich habe eine AC mit mehreren Fragen und Antworten. Diese müssen in einer DG angezeigt werden, und die Idee besteht darin, dass die Zeilen und Spalten der DG an die AC gebunden sind. Zum Beispiel, wenn die Antwort auf Frage1 Ja ist, muss die Ja-Schaltfläche wahr sein, und beide anderen müssen falsch sein (wie in normalem Funkverbindungsgruppenverhalten). Aber wenn ich eine Schaltfläche ändere, indem ich darauf klicke, sollte sich das Aktionsdatenfeld der AC entsprechend ändern. Bin ich hier klar genug?

Es ist für dynamische Fragebögen gedacht. Jede Hilfe wird sehr geschätzt.

<?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> 

Antwort

0

die ToggleButtonBar ist viel einfacher zu bedienen als ein RadioButton und es ist funktionell die gleiche Komponente (die selectedIndex - nur kann man zu einem Zeitpunkt ausgewählt werden).

Anstatt jeden Radiobutton in eine eigene Spalte zu setzen, setzen Sie einfach die ToggleButtonBar in eine Spalte.

0

nicht sicher, was Sie sich beziehen, wenn Sie von der ‚Aktionen‘ Datenfeld sprechen: ‚Aber wenn ich eine Taste ändern Sie es, indem Sie auf die Aktionen des AC Datenfeld entsprechend ändern‘

Was möchten Sie tun, wenn für Frage 1 'Ja' geklickt wird?

Zum Festlegen von Daten in itemrenderers überschreiben Sie die Funktion set data, und alle Daten für die Zeile sind im Wertobjekt vorhanden, wenn dieser Renderer

initialisiert
Verwandte Themen