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/