2009-07-04 17 views
0

私は金額の目的を計算するための3つのチェックボックスを持っています。私はデータグリッドのチェックボックスの値をチェックする/チェックしない方法は?

<mx:DataGrid> 
    <mx:itemRenderer> 
     <mx:Component> 
      <mx:CheckBox id=mycheckbox change="calc()"/> 
     </mx:Component> 
    </mx:itemRenderer> 
... 

public function calc():void 
{ 
    statistic.dataProvider = mycheckbox.selectedItem; 
} 

を使用datgrid内データグリッドを使用するが、おそらくundfined方法(計算値)

答えて

0

チェックボックスが「のSelectedItem」機能や性質を持っていないためにコールのようなエラーがスローされます...

mycheckbox .selectedは、sedチェックボックスがチェックされているかどうかに基づいてtrueまたはfalseを返します

dataproviderをtrueまたはfalseに設定して達成しようとしていることはわかりませんが、RadioButtonGroup

3

あなたが行ったやり方でこのチェックボックスにidを付けることはできません。また、単一のコンポーネントとして動作することを期待してください。 列のアイテムレンダラーとしてチェックボックスを指定すると、1つのチェックボックスについて話しているわけではありません。 データグリッドにある行と同数のチェックボックスを処理します。 次の例では、特定の行のチェックボックスを

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

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

    private function init() { 
     dg.dataProvider=ac; 
    } 
    public function check():void { 
     var obj:Object=dg.selectedItem; 
     Alert.show("Checkbox=" + obj.test); 
    } 
     ]]> 
    </mx:Script> 
    <mx:DataGrid id="dg" 
       dataProvider="{ac}" 
       click="check()"> 
     <mx:columns> 
      <mx:DataGridColumn dataField="name"> 

      </mx:DataGridColumn> 
      <mx:DataGridColumn> 
       <mx:itemRenderer> 
        <mx:Component> 
         <mx:CheckBox label="Test" 
            selected="{data.test}"/> 
        </mx:Component> 
       </mx:itemRenderer> 
      </mx:DataGridColumn> 

     </mx:columns> 

    </mx:DataGrid> 
</mx:Application> 

を選択されているかどうかを決定する方法を示します時々フレックスは、トラブルあなたが入れ子になったのitemRendererを持っているとき、データグリッドのデータプロバイダの更新を持っているようです。以下のようにチェックボックスで変更イベントが発生すると、dataprovider行の適切なプロパティを明示的に設定できます。

<mx:itemRenderer> 
    <mx:Component> 
     <mx:CheckBox label="Test" selected="{data.test}" 
        change="data.test=selected"/> 
     </mx:Component> 
</mx:itemRenderer> 
+0

うまくいった! 2番目の部分では、change = "data.test = selected"でエラーが発生し、change = "data.test =!data.test"に変更する必要がありました – Edyn

0

outerDocument.functionnameをitemrendererに使用し、その機能をpublicに設定します。これはFlex、Hierarchyの誤った管理の限界です。

関連する問題