DataGridの編集いろいろ

編集を防ぐ場合

itemEditBeginningのリスナーでevent.preventDefault()を呼ぶ。

編集確定時に何かする場合

itemEditEndのリスナーで行う。データの検証とかフォーマット調整とかDBの更新とか。

編集開始時にデータを加工する場合(その1)

itemEditBeginのリスナーで以下のように処理。
以下の例はTextInput。これをするとmxmlのほうで定義したitemFocusInのリスナーは呼ばれなくなる。
また、この方法だと、エディターがComboBoxの場合、openが効かない。
エディターを使い分けるときなどもここでやる。

event.preventDefault();
DataGridColumn(dg.columns[event.columnIndex]).itemEditor = new ClassFactory(TextInput);
dataGrid.createItemEditor(event.columnIndex, event.rowIndex);
// ここでデータを加工
// TextInput(dataGrid.itemEditorInstance).text= ...;

参照
DataGrid のアイテム編集に使用するアイテムエディタの指定
http://support.adobe.co.jp/faq/faq/qadoc.sv?230785+002+3

編集開始時にデータを加工する場合(その2)

itemFocusInのリスナーでitemEditorInstanceを操作する。
TextInputを改行で確定すると、focusInが2度呼ばれるので注意。ComboBoxのopenは効く。
参照
第12回 Flexが備えるMXMLコンポーネント
http://itpro.nikkeibp.co.jp/article/COLUMN/20070330/267029/