1/17/2012 11:54:19 PM
Title:
checkbox in datagrid
Checkboxes are randomly getting slected when I scroll down. can anyone please explain with code.
Thanks.
var freezePair:Boolean;
var chkBox:mx.controls.CheckBox;
public var myDP1:ArrayCollection;
[Bindable]
public function initDataGridData():void
{
myDP1 = new ArrayCollection();
for (var obh:Number = 1; obh<=6 ; obh++)
{
for (var pair:Number = 1; pair<=20 ; pair++)
{
myDP1.addItem({obhNumber: obh, pairNumber: pair, isChecked: false});
}
}
gridTable.dataProvider=myDP1;
gridTable.validateNow();
}
public function fetchProfit(event:Event): void
{
var obh:Number = gridTable.selectedItem.obhNumber;
var pair:Number = gridTable.selectedItem.pairNumber;
//fetch the profit from backed and display
gridTable.selectedItem.profit = numberFormatter.format(obh+pair);
gridTable.invalidateList();
//Alert.show("Are you sure you want to freeze the trade", "Warning", (Alert.NO | Alert.YES), this,null, null, Alert.NO, null);
//var index:Number = gridTable.selectedIndex;
}
public function showWarning(flag:Boolean, mychkBox:mx.controls.CheckBox):void
{
freezePair = flag;
chkBox = mychkBox;
if(flag){
Alert.show("Are you sure", "Warning", (Alert.NO | Alert.YES), this, handleYesNoWarningDialog, null, Alert.NO, null);
}else {
Alert.show("Are you sure ", "Warning", (Alert.NO | Alert.YES), this, handleYesNoWarningDialog, null, Alert.NO, null);
}
}
private function handleYesNoWarningDialog(event:CloseEvent):void {
if(event.detail == Alert.YES){//Yes
var obh:Number = gridTable.selectedItem.obhNumber;
var pair:Number = gridTable.selectedItem.pairNumber;
validateDisplayList();
//call back end code to freeze pair
//show PnL also
} else if(event.detail == Alert.NO){//No
// do nothing
chkBox.selected = !freezePair;
validateDisplayList();
//.setStyle("color","#F7D2AE");
}
}
/*private function adminFaultHandler(event:FaultEvent):void
{
if(event.fault != null) {
var a:Number = gridTable.selectedItem.toString();
gridTable.alpha = 1;
Alert.show(event.fault.toString());
}
} */
]]>
</fx:Script>
<s:VGroup>
<mx:AdvancedDataGrid editable="false" id="gridTable" paddingLeft="0" paddingTop="0" paddingBottom="0" width="{this.width}" height="{this.height}" borderColor="#F8F1F1" selectionMode="multipleRows">
<mx:columns>
<mx:AdvancedDataGridColumn id="OBH" headerText="OBH #" width="80" dataField="obhNumber" textAlign="center" sortable="true"/>
<mx:AdvancedDataGridColumn id ="PairNumber" headerText="Pair #" width="80" dataField="pairNumber" textAlign="center" sortable="true"/>
<mx:AdvancedDataGridColumn headerText="Pair Control" width="100" editable="false" sortable="false">
<mx:itemRenderer>
<fx:Component>
<s:MXAdvancedDataGridItemRenderer verticalCenter="0">
<s:HGroup>
<mx:CheckBox selected="false" textAlign="center" id="chkBox" color="#F7D2AE" symbolColor="#0" label="Freeze" click="outerDocument.showWarning(chkBox.selected, chkBox);"/>
</s:HGroup>
</s:MXAdvancedDataGridItemRenderer>
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="Fetch Profit" width="100" editable="false" sortable="false">
<mx:itemRenderer>
<fx:Component>
<s:MXAdvancedDataGridItemRenderer>
<s:HGroup>
<mx:Spacer width = "100%"/>
<mx:Button width = "100%" verticalCenter="0" click="outerDocument.fetchProfit(event);" label="Fetch" fontWeight="bold" />
<mx:Spacer width = "100%"/>
</s:HGroup>
</s:MXAdvancedDataGridItemRenderer>
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn dataField="profit" headerText="Profit" width="70" textAlign="right" editable="false" sortable="true">
<!--mx:itemRenderer>
<fx:Component>
<s:MXAdvancedDataGridItemRenderer color="white" accentColor="white">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
]]>
</fx:Script>
<s:HGroup>
<mx:TextArea id="profitArea" editable="true" width = "110" fontWeight="bold" />
</s:HGroup>
</s:MXAdvancedDataGridItemRenderer>
</fx:Component>
</mx:itemRenderer-->
</mx:AdvancedDataGridColumn>
</mx:columns>
</mx:AdvancedDataGrid>
</s:VGroup>
</mx:Application>