行編集のサポートをデータ・テーブルに追加すると、
ユーザーは別のページにナビゲートしないで、1 つのデータ・テーブル内で特定の行を編集することができます。
ユーザーはデータ・テーブルの行編集列内にある「編集」ボタンをクリックします。
すると、フォームが表示されます。ユーザーはこのフォームを使用して新しいテキストを入力し、
そのテキストを保管するか、またはフォームから取り消すかを選択します。
このオプションはデータ・テーブルが表示専用の場合に特に有効です。
データ・テーブル内の行を編集する機能を追加する方法:
- データ・テーブルを選択する。 データ・テーブルの「プロパティー」ビューが開きます。
- データ・テーブルの「プロパティー」ビューの「行アクション」タブで、
「行コンテンツをその場で編集するフォームを立ち上げる編集列の追加」の横の「追加」をクリックする。 JSP パネルを含む新規の行編集列がデータ・テーブルに追加されます。
- ユーザーが行を簡単に編集できるようにするため、新規列内に小さなフォームを作成する必要があります。
以下の手順はこのフォームを作成する方法の一例です。
- 「ページ・データ」ビューを開く。
テーブルの読み取り専用部分で使用したデータをパネル (jspPanel) へドラッグする。
列へではなく、必ずパネルへドラッグするようにしてください。
新規コントロールの作成を求めるプロンプトが示されます。
- 表示する「挿入」ダイアログで、レコードを表示するか、更新するか、
あるいは作成するかどうかを選択する。
- 新規フォームに表示したい列を選択する。
フォーム内で編集可能にしたい列は、コントロール・タイプを必ず「入力フィールド」に変更してください。
デフォルトでは、ユーザーに対して表示されるフォーム上に、
「保管」ボタンおよび「キャンセル」ボタンが表示されます。
別の方法として、パネル内で独自のフォームを作成することもできます。例えば、HTML テーブルをドラッグし、入力コンポーネントをパネルへ追加して、テーブルの作成に使用したデータ・ソース用の対応するデータ・フィールドへ、これらのコントロールをバインドすることができます。
- フォームの変更をデータベースに戻す方法:
- 新規列で「行編集」コンポーネントを選択する。
(「行編集」コンポーネントの選択が困難な場合は、「プロパティー」ビューに移動して、
「hx:commandExRowEdit」を選択する。) 行編集の「プロパティー」ビューが開きます。
- 「クイック編集」アイコンをクリックして「クイック編集」ビューに切り替え、
右側のペインに以下のコードを入力する。
以下の「MyList」をご使用の SDO 関連リストの名前に置き換えます:
try {
getMyListMediator().applyChanges((DataObject)((EcoreEList)getMyList()).getEObject());
}
catch (Throwable e) {
logException(e);
}
WDO を使用していない場合は、以下のコードを右方のペインに入力して、
「MyList」をご使用の WDO 関連リストの名前に置き換えます: try {
getMyListMediator().applyChanges(getMyList().getDataGraphAccessBean());
}
catch (Throwable e) {
logException(e);
}
このコード・サンプルは SDO または WDO 関連レコードとレコード・リストだけに作動するものですから、
注意してください。
- 次に「規則の追加」をクリックすることにより、
行編集の「プロパティー」ビューでナビゲーション規則を設定することができます。
これらの 規則は、アクションが実行されるときのジャンプ先となるページを識別します。