Solved

Flex CheckBox in Datagrid

Posted on 2009-07-13
2
5,494 Views
Last Modified: 2013-11-11
In the followin flex Code :
Also viewable at : http://www.cse.epicenterlabs.com/checkBoxDg/checkBoxDg.html
1. Add a row in datagrid by clicking on "AddRow"
2. Click on "CheckDg" to see the values of all the checkboxes
     - it shows "checkBox57" or "checkBox64" or some similar string
3. Now, "select" the checkBox in the first row.
4. Click again on "CheckDg"
    -it show "true"

So, initially dp.getItemAt(i).ck1 returns a CheckBox
and later it returns the "selected" value of the CheckBox?
Why this difference?

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html">

		<mx:Canvas>

		<mx:DataGrid x="69" y="119" id="dgFee" editable="true" dataProvider="{dp}">

			<mx:columns>

			<mx:DataGridColumn headerText="Date" dataField="ck1" width="100" editable="true" 

			editorDataField="selected" rendererIsEditor="true">

			<mx:itemRenderer>

				<mx:Component>

					<mx:CheckBox selected="false">

					                   </mx:CheckBox>

				        </mx:Component>

			</mx:itemRenderer>

			</mx:DataGridColumn>

			           <mx:DataGridColumn dataField="amount" headerText="Amount" editable="true">

			             <mx:itemEditor>

			             <mx:Component>

			             	  	  <mx:TextInput restrict="0-9"/>

			             </mx:Component>

			             </mx:itemEditor> 	

			           </mx:DataGridColumn>

			</mx:columns>

		</mx:DataGrid>

		<mx:CheckBox x="130" y="54" label="Checkbox" selected="true" click="Alert.show(abc.selected.toString())" id="abc"/>

<mx:Script>

	<![CDATA[

		import mx.controls.CheckBox;

		import mx.collections.ArrayCollection;

		import mx.controls.Alert;

		public var dp:ArrayCollection = new ArrayCollection();

		public function addRow():void

		{

		  var tmp:Object = new Object();

		  tmp['amount'] = 100;

		  tmp['ck1'] = new CheckBox();

		  dp.addItem(tmp);

		}

		public function delRow():void

		{

			if(dgFee.selectedIndex != -1)

			dp.removeItemAt(dgFee.selectedIndex);

		}
 

		public function loop1():void

		{

			for(var i:int=0;i<dp.length;i++)

			{

			   Alert.show(dp.getItemAt(i).ck1);

			}

		}

	]]>

</mx:Script>

				<mx:Button x="29" y="89" label="AddRow" click="addRow()"/>

				<mx:Button x="107" y="89" label="DelRow" click="delRow()"/>

				<mx:Button x="184" y="89" label="CheckDg" click="loop1()"/>
 

</mx:Canvas>	

</mx:Application>

Open in new window

0
Comment
Question by:dtivmk
  • 2
2 Comments
 
LVL 37

Accepted Solution

by:
zzynx earned 500 total points
ID: 24846914
You render the attribute 'ck1' of your object (of type Object) by means of a CheckBox.
You also use the renderer as the editor (rendererIsEditor="true")

That means that when you select the checkbox, behind the scenes this statement performed:

         tmp['ck1'] = true;  (overwriting the previous value which was a CheckBox)

When you unselect it, behind the scenes this statement performed:

         tmp['ck1'] = false;


So in fact, it is of no use to have this:

tmp['ck1'] = new CheckBox();

Replace it by

        tmp['ck1'] = false;
0
 
LVL 37

Expert Comment

by:zzynx
ID: 24958321
Thanx 4 axxepting
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is a very simple example to help those of you who are still migrating from AS2 to AS3 understand the redesigned event model in AS3. In AS2.0, event functions (that is, the function to be performed when an event is fired) were stored as a pro…
I have been doing hardcore actionscripting for some time; and needless to say I have faced a lot of problems in just understanding others' code rather than understanding what the code executes. A programmer's life can become hell when there are a lo…
In this tutorial viewers will learn how to create a basic shape tween animation in Flash including shape hints for smooth animation Open a new document in Flash: Draw a shape: Select another frame (how long you want the tween to be): Right click and…
This Micro Tutorial will teach to how to utilize bit rate in Adobe Flash Media Live Encoder.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now