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


Reply via email to