天天看點

DataGrade中ItemEditor屬性使用說明

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