This code will get you started:
--------------- data6.xml ------------
<?xml version="1.0" encoding="utf-8"?>
<myData>
<dataItem>
<displayValue>Orlando</displayValue>
<dataValue>001</dataValue>
<selected>false</selected>
</dataItem>
<dataItem>
<displayValue>Atlanta</displayValue>
<dataValue>002</dataValue>
<selected>false</selected>
</dataItem>
<dataItem>
<displayValue>New York</displayValue>
<dataValue>003</dataValue>
<selected>false</selected>
</dataItem>
</myData>
----------- Test.mxml -----------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="dataRequest.send()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
]]>
</mx:Script>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.ListEvent;
import mx.collections.XMLListCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.CheckBox;
[Bindable] private var displayValue:String = "";
[Bindable] private var dataValue:String = "";
[Bindable] private var dataxlc:XMLListCollection = new
XMLListCollection();
private function resultHandler(e:ResultEvent):void {
var xmllist:XMLList = new XMLList(e.result..dataItem);
dataxlc = new XMLListCollection(xmllist);
}
public function checkChangeHandler(event:Event):void{
// Delete this code if it is okay for more than
// one checkbox to be selected at a time.
for(var x:uint=0;x<dataxlc.length;x++){
if(x != dg.selectedIndex){
var xml:XML = XML(dataxlc.getItemAt(x));
if(xml.selected == "true"){
xml.selected = "false";
}
dataxlc.setItemAt(xml, x);
}
}
// End of code to be deleted.
var xml2:XML = XML(dataxlc.getItemAt(dg.selectedIndex));
xml2.selected = event.target.selected;
dataxlc.setItemAt(xml2, dg.selectedIndex);
displayValue = xml2.displayValue;
dataValue = xml2.dataValue;
}
]]>
</mx:Script>
<mx:HTTPService id="dataRequest" useProxy="false" resultFormat="e4x"
result="resultHandler(event)" url="data6.xml"/>
<mx:DataGrid id="dg" dataProvider="{dataxlc}"
rowCount="{dataxlc.length}">
<mx:columns>
<mx:DataGridColumn headerText="Selected"
dataField="selected">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Selected"
selected="{data.selected == 'true'}"
change="outerDocument.checkChangeHandler(event);"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="displayValue"
headerText="Display Value" width="200"/>
<mx:DataGridColumn dataField="dataValue"
headerText="Data Value" width="200"/>
</mx:columns>
</mx:DataGrid>
<mx:Form>
<mx:FormItem label="Display Value:">
<mx:Label text="{displayValue}"/>
</mx:FormItem>
<mx:FormItem label="Data Value:">
<mx:Label text="{dataValue}"/>
</mx:FormItem>
</mx:Form>
</mx:Application>
--- In [email protected], "Frank Griffin" <bpm2...@...> wrote:
>
> I am new to Flex and I am having a problem with maintaining a VAR.
>
> Can someone point me to a code sample for a handler that maintains a VAR
> based on the on change of a checkbox? I think I understand how to add to a
> VAR but I can't find an example of removing from a VAR.
>
> Use Case: I have a datagrid with three columns where the first column is a
> checkbox named "Selected", the second column named "Display Value" and the
> last named "Data Value". When a user checks the checkbox I need to add the
> value of the other two row cells to their respective VARS (var dsplValue for
> "Display Value" and var dataValue for "Data Value"). Conversely, when a user
> unselects a checkbox I need to remove the respective values in the two VARs.
>
> Data Examples:
>
> "Display Value" = Orlando
> "dispValue" = "Atlanta", "New York"
> "Data Value" = 004
> "dataValue" = '001', '002', '003'
>
> Best regards,
>
> Frank G.
>