<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表示要對哪一列進行操作。