Hi all,
I am creating a datagrid on th fly.
Datagrid is working fine.
i creating a chackbox item renderer and the check box is displaying in
the datagrid.
My Problem:
**********************
When change the state of checkbox i want to update the value in
bindable arraycollection. but it is not updating.
Please give me solution for how to update a value in bindable
dataArray:ArrayCollection when change the state of CheckBox from
CheckBox Itemrenderer.
My Code:
*************************
[Bindable]
private var dataArray:ArrayCollection;
// Retrieving data using JSON
private function
createDataGridUserAssignmentQuestions( event:ResultEvent ):void {
var rawArray:Array;
var rawData:String = String(event.result);
rawArray = JSON.decode(rawData) as Array;
dataArray = new ArrayCollection(rawArray);
creationCompleteHandler( event );
}
// Creating DataGrid.
private function creationCompleteHandler( evt:ResultEvent ) : void
{
var columns:Array = new Array();
columns.push(getColumn("Completed", "Completed"));
columns.push(getColumn("StudentName", "Student Name"));
var iQuestionIndex:int = 1;
for(var i:int = 0; i < iTotalQuestions; i++)
{
var columnTitle:String;
columnTitle = "Q" + (iQuestionIndex);
iQuestionIndex++;
columns.push(getColumn("QuestionResponsesAnswerChosen" + i,
columnTitle ));
}
var grid:DataGrid = new DataGrid();
grid.columns = columns;
grid.percentWidth = 100;
//grid.height = 215;
grid.height = 215;
grid.lockedColumnCount = 2;
grid.editable = true;
//grid.rowCount = dataArray.length;
grid.horizontalScrollPolicy = ScrollPolicy.AUTO;
grid.setStyle('horizontalScrollBarStyleName','customScroll');
grid.setStyle('verticalScrollBarStyleName','customScroll');
grid.dataProvider = dataArray; //rows;
grid.addEventListener(ListEvent.ITEM_CLICK, onColumnSelect );
grid.addEventListener(FlexEvent.CREATION_COMPLETE, getFirstQuestion )
QuestionGridStage.addElement(grid);
}
// Creating Colomuns
private function getColumn(dataField:String,
headerText:String):DataGridColumn
{
var column:DataGridColumn = new DataGridColumn(dataField);
column.headerText = headerText;
column.draggable = false;
if(headerText == "Student Name"){
column.editable = false;
column.width = 150;
} else if(headerText == "Completed"){
column.setStyle("textAlign","center");
column.editable = false;
column.width = 80;
column.itemRenderer = new
ClassFactory(checkBoxAssignment); // HERE
I NEED HELP
}else {
column.setStyle("textAlign","center");
column.resizable = false;
column.width = 50;
column.itemRenderer = new
ClassFactory(GridColumnInputTextBoxRenderer);
column.rendererIsEditor = true;
}
return column;
}
// CheckBox Renderer
<?xml version="1.0" encoding="utf-8"?>
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalCenter="0" verticalCenter="0" >
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.dataGridClasses.DataGridListData;
[Bindable] private var formattedValue:Boolean;
override public function set data(value:Object):void
{
super.data = value;
formattedValue = data[(listData as
DataGridListData).dataField];
this.selected = formattedValue;
}
protected function changeValue(event:Event):void
{
formattedValue = this.selected;
}
]]>
</mx:Script>
</mx:CheckBox>
--
You received this message because you are subscribed to the Google Groups "Flex
India Community" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/flex_india?hl=en.