I want be able to delete a datagrid row AND rows out of a data grid if
a checkbox is checked. The checkbox is part of the row (the first
cell). Right now I cannot detect if the checkbox is selected or not
after it has been sent to the datagrid. I would like to check which
rows are checked and then remove all of the rows that have a selected
check box (call removeTaskRecord()). How can I do this? I just started
learning Flex, so all suggestions with accompanied code are
appreciated. Thanks

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute" backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#FDFDFD, #FDFCFC]">
    <mx:Script>
        <![CDATA[
            
            import mx.collections.ArrayCollection;
            import mx.controls.List;
            import mx.controls.CheckBox;    
            import mx.controls.ComboBox;
            
            [Bindable]    
            private var myArray1:Array = new Array("a", "b", "c");
            
            [Bindable]    
            private var myArray2:Array = new Array("a", "b", "c");
            
            [Bindable]    
            private var myArray3:Array = new Array("a", "b", "c");
            
 
            [Bindable]
            private var dataGridProvider:ArrayCollection = new
ArrayCollection();
            
            
            [Bindable]
            private var selectCheckBox:CheckBox = new CheckBox();
            
            private var cb:ComboBox = new ComboBox();
            
            
            private function updateTable():void
            {
                //Add the new data into the table (into the next row
of the table)
                dataGridProvider.addItem({col1:selectCheckBox,
col2:cb1.selectedLabel,col3: input1.text, col4:cb2.selectedLabel,
                 col5:ns1.value ,col6:cb3.selectedLabel, col7:ns2.value});
 
                //Update the table's dataprovider with the updated
task row
                table.dataProvider = dataGridProvider;
                
                //Clear the data from the new task input form 
                cb1.selectedIndex = -1;
                input1.text = null;
                cb2.selectedIndex = -1;
                ns1.value = 0;
                cb2.selectedIndex = -1;
                ns2.value = 0;
            }
            
            private function removeTaskRecord():void
            {
                //Check if the checkbox for the task is selected 
               
//((CheckBox)(((Array)(dataGridProvider.getItemIndex(scrumTable.selectedIndex)))[0])).selected
               
if(table.selectedIndex>=0)//selectCheckBox.selected)//if(datagrid
selected index is greater than or equal to 0)
                {
                    //Remove the task record from the Data Grid data
provider
                   
dataGridProvider.removeItemAt(table.selectedIndex);    
 
                }
                
                
                
            }
            
        
            
        ]]>
    </mx:Script>
    
    <mx:Panel width="1027" height="382" layout="absolute"
borderColor="#0C2B73" left="10" bottom="10">
        <mx:DataGrid x="10" y="10" width="984" height="295"
wordWrap="true" id="table" dataProvider="{dataGridProvider}"
draggableColumns="false" variableRowHeight="true">
            <mx:columns>
                <mx:DataGridColumn headerText="col1" dataField="col1"
editable="true" itemRenderer="mx.controls.CheckBox" width="50"
textAlign="center"/>
                <mx:DataGridColumn headerText="col2" dataField="col2"
 editable="true" itemRenderer="mx.controls.TextInput"/>
                <mx:DataGridColumn headerText="col3" dataField="col3"
editable="true" itemRenderer="mx.controls.TextInput"/>
                <mx:DataGridColumn headerText="col4" dataField="col4"
editable="true" itemRenderer="mx.controls.TextInput"/>
                <mx:DataGridColumn headerText="col5" dataField="col5"
editable="true" itemRenderer="mx.controls.NumericStepper"/>
                <mx:DataGridColumn headerText="col6" dataField="col6"
editable="true" itemRenderer="mx.controls.TextInput"/>
                <mx:DataGridColumn headerText="col7" dataField="col7"
editable="true" itemRenderer="mx.controls.NumericStepper"/>
            </mx:columns>
        </mx:DataGrid>
        <mx:Button x="921" y="313" label="Remove" id="removeBtn"
enabled="true" click="removeTaskRecord()"/>
    </mx:Panel>
    <mx:Panel width="520" height="308" layout="absolute" left="10"
top="33" borderColor="#0C2B73">
        <mx:ComboBox x="10" y="40" id="cb1" dataProvider="{myArray1}"
width="169" selectedIndex="-1"></mx:ComboBox>
        <mx:TextInput x="202" y="40" width="255" id="input1"/>
        <mx:ComboBox x="10" y="107" dataProvider="{myArray2}"
selectedIndex="-1" id="cb2"></mx:ComboBox>
        <mx:ComboBox x="202" y="107" dataProvider="{myArray3}"
selectedIndex="-1" id="cb3"></mx:ComboBox>
        <mx:NumericStepper x="10" y="179" maximum="25" id="ns1"/>
        <mx:NumericStepper x="202" y="179" maximum="25" id="ns2"/>
        <mx:Button x="392" y="218" label="Submit"  id="sbBtn"
click="updateTable()"/>
    </mx:Panel>
 
    
</mx:Application>

Reply via email to