<mx:Script>
<![CDATA[
//单元格点击事件
private function itemClickHandle(e:ListEvent):void
{
var grid:DataGrid=e.target as DataGrid;
dataGrid.selectedItem.normalValue;//获取当前行的某个列值 normalValue就是dataField
var rowIndex:int = grid.selectedIndex;//被点击的单元格所在的行
var selectedCol:DataGridColumn = grid.columns[e.columnIndex] as DataGridColumn;//被点击的列对象
var dataFieldName:String = selectedCol.dataField;//获取该列data字段名称
var selectVal:String = e.target.itemEditorInstance.text;//获取点击选中的单元格的值
var indexCode:String = dataFieldName.split("_")[1];
//可以通过行标还有dataFieldName获取数据集中对应的数据
dataCollection[rowIndex]["test_"+indexCode] = dataCollection[rowIndex][dataFieldName];
dataCollection.refresh();//refresh可以将页面绑定控件同时刷新
}
private function itemEditEndHandler(event:DataGridEvent):void{
//获取修改后的值
var inputValue: String = event.currentTarget.itemEditorInstance.text;
//log.debug("rowIndex = "+event.rowIndex + ",colIndex = " + event.columnIndex + ",inputValue =" + inputValue);
}
]]>
</mx:Script>
<mx:DataGrid id="dataGrid"
dataProvider="{dataCollection}"
variableRowHeight="true"
itemClick="itemClickHandle(event)"
itemEditEnd="itemEditEndHandler(event)"
editable="true"
width="100%"
height="100%">
<mx:columns>
<mx:DataGridColumn dataField="name_1" editable="false">
<mx:itemRenderer>
<mx:Component>
<mx:Label width="100%" useHandCursor="true" buttonMode="true" mouseChildren="false" text="{data.name_1}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="value_1" editable="false"/>
<mx:DataGridColumn dataField="inputVal_1" id="inputVal_1_Id">
<mx:itemEditor>
<mx:Component>
<mx:TextInput editable="{data.inputVal_1=='-'?false:true}" text="{data.inputVal_1}"/>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="name_2" editable="false">
<mx:itemRenderer>
<mx:Component>
<mx:Label width="100%" useHandCursor="true" buttonMode="true" mouseChildren="false" text="{data.name_2}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="value_2" editable="false"/>
<mx:DataGridColumn dataField="inputVal_2" itemEditor="mx.controls.TextInput"/>
</mx:columns>
</mx:DataGrid>
(转载请注明出处:博彩通http://www.hoom.org)