<mx:DataGrid id="dataGrid"
dataProvider="{arrColl}"
editable="true"
rowCount="8" fontSize="12" fontFamily="Arial" width="324" height="334">
<mx:columns>
<mx:DataGridColumn dataField="label" headerText="国家"
editable="false" />
<mx:DataGridColumn dataField="score" headerText="金牌数" editable="true"
editorDataField="value" itemEditor="mx.controls.NumericStepper"
/>
</mx:columns>
</mx:DataGrid>
itemEditor 属性和 editorDataField属性共同为这个表格的这一列设置编辑时显示的编辑控制。前提是DataGrade 和 DataGrideColum必须同时为可编辑状态。
itemEditor 指定了编辑器的类名,默认为文本编辑器,也可以指定其他的编辑器,如:CheckBox、NumericStepper等。
editorDataField 属性指定了编辑后的值是新编辑器的哪个属性。如:此例中,当编辑后则把NumericStepper的value值返回来。此时编辑后的数据会改变数据源的数据。在默认情况下,NumericStepper对象的值范围是0-10。但是我们可以继NumericStepper类,重新设置它的最大值和最小值,然后在itemEditor中填写我们自己的类即可。如:public class SubNumericStepper extends NumericStepper
{
public function SubNumericStepper()
{
this.minimum=-100;
this.maximum=100;
}
}
labelFunction属性是一个回调函数。在对应值里面填写一个函数。该函数可以确定该列文本的显示格式,但是需要在函数里面设定。如:
internal function labelFun(item:Object,column:DataGridColumn):String
{
column.editable=true;
if (item.hasOwnProperty("score"))
return item.score+"枚";
else
return item.score=null;
}
abelFunction="labelFun"。其中函数的参数必须为那两个参数。该函数实现了在该列中每个单元格中的数据后面添加一个汉字“枚”,但是数据源的数据不会因此而添加一个“枚”字,这里只是设置了表格的文本显示格式。item参数表示数据源中每一行数据对象,column表示要对哪一列进行操作。