SMART datagrid v.1 > Concepts

Back  Forward

Concepts.Cell Editing Overview  準備中...

SMART datagridグリッドは実行時間にユーザーが直接行を追加、又は削除し、 セルエディターを利用して値を修正できるいろんな方法を提供する。 また、編集活動が発生する各時点毎にイベントを発生させて 開発者がアプリケーションの要求に合うUIを具現することができるようにする。 

グリッドでユーザーの編集はアプリケーションによっていろいろな形で具現されて、 それはすごく複雑である場合もある。 

1. エディターの開閉

編集しようとするデータセルにフォーカスを与えた後、 F2キーを打つかマウスをダブルクリックするとカラムに設定されたエディターが表示される。 また、フォーカスがあるデータセルでキーの入力を始めるとエディターが表示される同時に入力が始まる。 

GridBase.showEditorを呼び出してエディターを表示することもある。 エディターが表示される直前にGridBase.onShowEditorイベントが発生する。 

2. 編集の完了、及び取消

エディターが表示中の時Escキーを打つとセルの編集が取消になり、エディターが閉ざされてエディターに入力された値は無視される。 エディターが閉ざされた直後GridBase.onEditCanceledイベントが発生する。 GridBase.cancelEditorを呼び出してセルの編集を取消にすることもできる。 また、行の編集を取消にするためにはエディターが表示されてない状態でもう一度Escキーを打てばいい。 

セルの編集を完了するためにはEnterキーを打つか、キーボードーやマウスでフォーカスを移動させる。 この時、他の行のセルに移動させればセルの編集と同時に行の編集の完了が実行される。 GridBase.commitEditorを直接呼び出して編集を完了させることもできる。 

セルの編集の完了の直前にValidationが実行されて、検証が完了になったら入力された値が反映されて GridBase.onEditCommittedGridBase.onEditCellUpdatedイベントが順番に発生する。 この時、エディターでユーザーが編集した値の代わりに他の値を渡すとこができる。そのために、DataColumn.editCallback関数でeditResult.valueを他の値に設定する。 

セルの編集を取消にするためにはEscキーを入力する。又はcancelEditorメソッドを呼び出す。 

3. 行の編集完了、及び取消

EditOptions.updateByCelltrueに指定しなければ、 SMART datagridグリッドは基本的に行単位で編集を行う。 つまり、行全体の編集を完了したり、取消する。 行の編集が完了にならなければデータセットに入力された値たちが渡される。 

編集を完了するためには方向キーやマウスクリックで行の位置を変更する。 または、GridBase.commitメソッドを直接呼び出すこともできる。 編集を取消にするためにはエディターが表示されてない状態でEscキーを入力すればいい。 つまり、エディターが表示された状態ならEscキーを二回連続で打てばいい。 また、cancelメソッドを呼び出す。 

4. 編集イベント

セルエディターを利用してユーザーがセルを修正する時 下の表に羅列された順にグリッドイベントが発生することができる。 

Table-1  編集イベント達
イベント説明
onShowEditor(grid, index)エディターが表示される直前に発生する。このイベントハンドラーで明示的にfalseをリターンすればエディターが表示されない。
onEditChangedエディターの内容が修正されるたびに発生する。
onEditCanceledセルの編集が取消になる度に発生する。
editCallbackこのコールバック関数の内でユーザーが編集した値の代わりに他の値で編集を完了することができる。
onEditCommittedセル編集が正常的に完了されれば発生する。
onEditCellUpdated編集が完了される時点で入力された値が既存の値と違う時に発生する。
onEditRowPasted編集中の行にクリップボードの貼り付けが成功した時に発生する。
onEditSearchSearchCellEditorがリストに表示する項目を要請するイベントである。
onEditRowCommitted行の編集が完了された後発生する。
onEditRowCanceled行の編集が取消になった後発生する。
onPastedグリップボードの貼り付けが完了された後発生する。
5. セルエディターの選択

現在SMART datagridグリッドでは下のテーブルに羅列された種類のセルエディターを提供する。 DataColumn.editorプロパティーでエディターの種類とプロパティーを設定する。 

Table-2  セルエディター達
種類説明主なプロパティー達
'line'
LineCellEditor
一行のテキストエディター。基本の編集機maxLength – 入力の最大の長さ
'list'
ListCellEditor
設定可能な目録をリストボックスで表示するテキストのエディター
'multiline'
MultiLineCellEditor
複数の行のテキストエディターmaxLength - 入力の最大の長さ
'number'
NumberCellEditor
数字のエディターpositiveOnly – 正の数だけ入力
maxDigits – 小数点以下の桁数
'date'
DateCellEditor
カレンダーリストを表示する日付のエディターyearNavigation – 年度の変更ボタンの表示
showToday – 今日の日付に移動するボタン表示
'search'
SearchCellEditor
条件によってリストの目録を変更するリストエディターkeyLength - 目録を要請する最小テキストの長さ
searchDelay – 入力の後、要請するイベンドが発生する前の待機期間
6. 編集中のソーティング、フィルタリング、グルーピング、ページング

現在、行が編集中ならソーティング、フィルタリング、行のグルーピング、ページングを進行しない。 

7. 編集中データセットの変更

現在行の編集中なら"クライアント編集中"例外が発生してデータセットを変更しないようにしている。 

See Also
TextEditor
DateEditor
CheckRenderer
DataColumn
Examples
セルの編集
テキストのエディター
日付のエディター
Check Cell Renderer