2009-07-15 54 views
0

我在datagrid中使用了iteamreander。如果我選中複選框,自動選擇另一個 複選框爲什麼? PLZ解釋我的XML數據超過50條記錄。itemRenderer的datagrid中的問題複選框 - 仍然不能解決問題

<mx:DataGrid change="calculate()" id="calamount" x="0" y="3" width="327" 
      height="337" variableRowHeight="true" 
      dataProvider="{xml_coupon.lastResult.Teamcoupon.match_details}" > 
    <mx:columns> 
    <mx:DataGridColumn headerText="Away" dataField="away_team" width="100"/> 
    <mx:DataGridColumn headerText="1" rendererIsEditor="true" 
         editorDataField="selected"> 
     <mx:itemRenderer> 
     <mx:Component> 
      <mx:HBox verticalAlign="middle" paddingLeft="2"> 
      <mx:CheckBox id="checkbox1" selected="{outerDocument.checkedAll}" 
     click="{data.check1=checkbox1.selected;outerDocument.calcValues();}"/> 
      </mx:HBox> 
     </mx:Component> 
     </mx:itemRenderer> 

回答

4

如果是這樣,當你滾動,你可以使用此代碼作爲ItemRender,它會解決您的問題發生:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
    implements="mx.controls.listClasses.IDropInListItemRenderer"> 

<mx:Script> 

    import mx.events.CollectionEvent; 
    import mx.collections.ArrayCollection; 
    import mx.controls.dataGridClasses.DataGridListData; 
    import mx.controls.DataGrid; 
    import mx.controls.listClasses.BaseListData; 

    private var _listData:BaseListData; 
    private var _dataGrid:DataGrid; 

    [Bindable("dataChange")] 
    public function get listData():BaseListData 
    { 
     return _listData; 
    } 

    public function set listData(value:BaseListData):void { 
     _listData = value; 
     _dataGrid = value.owner as DataGrid; 
    } 

    override public function set data(value:Object):void { 
     super.data = value; 
     cb.selected = value["isSelected"]; 
    } 

    private function onChange():void { 
     data["isSelected"] = cb.selected; 
     var dp:ArrayCollection = _dataGrid.dataProvider as ArrayCollection; 
     dp.dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE)); 
    } 

</mx:Script> 

<mx:CheckBox id="cb" horizontalCenter="0" change="onChange()" /> 
</mx:Canvas> 
+0

可我知道是什麼原因複選框被自動選擇 – 2009-07-15 09:03:54