2013-01-20 83 views
0

我有一個帶有editable屬性的數據網格,並且在一列中顯示日期信息。 日期以字符串格式存儲在數據提供者中。 (這些日期來自httpservice的數據庫)。 但我想在我的datagrid列上添加一個itemEditor。 要做到這一點,我嘗試如何在datagrid中添加datefield

<mx:DataGridColumn dataField="echElemDate" headerText="MyHeaderDate" 
    headerStyleName="dgHeader" fontWeight="normal" 
     itemEditor="mx.controls.DateField" editorDataField="text"/> 

但是當我點擊該單元格,一個錯誤出現:

Type Coercion failed: cannot convert "29/07/2015" to Date 

所以,你可以幫我解決這個錯誤。

感謝

回答

0

嘗試改變HEADERTEXT = DateString並確保您插入MX:DataGrid中可編輯=「真」

+0

謝謝你的回答,但它沒有解決我的問題。事實上,我的datagrid是可編輯的,headerText不是問題 – Flex60460

0

如果你的數據提供程序中你必須爲具有可控對象作爲類,最簡單的方法是添加一個getter和你的類轉換字符串<二傳手>使用日期DateField,像這樣:

public function get echElemDateAsDate():Date { 
    return DateField.stringToDate(this.echElemDate, "DD/MM/YYYY"); 
} 

public function set echElemDateAsDate(value:Date) { 
    this.echElemDate = DateField.dateToString(value, "DD/MM/YYYY"); 
} 

如果你沒有在班級的控制,那麼我認爲你必須做一個銅stom item編輯器

+0

在我的數據提供者中,我沒有AS對象。那麼,我可以使用覆蓋集和獲取數據方法在itemrenderer中使用您的答案嗎? – Flex60460

+0

是的設置數據。不確定獲得,我不記得數據提供者如何將項目編輯器中的數據放回。 – cporte

1

使用editorDataField =「selectedDate」。因爲編輯結束時,它會將DateField [editorDataField]轉換爲data [dataField]

0

@ huang.xinghui給了你有用的建議,你是否試過這段代碼?我轉載了你的情況,這有助於。

<mx:DataGridColumn dataField="echElemDate" headerText="MyHeaderDate" 
           headerStyleName="dgHeader" fontWeight="normal" 
           itemEditor="mx.controls.DateField" editorDataField="selectedDate"/>