データ・テーブルに行編集のサポートを追加すると、ユーザーは別のページへナビゲートする必要なしに、データ・テーブルの特定の行を編集することができます。ユーザーはデータ・テーブルの行編集列で「編集」ボタンをクリックします。フォームが現われるので、
ユーザーはそこに新しいテキストを入力し、テキストの保管を選ぶかキャンセルしてフォームを閉じます。このオプションはデータ・テーブルが表示専用のテーブルの場合に特に有効です。
データ・テーブルの行を編集する機能を追加するには、次のようにします。
- データ・テーブルを選択します。 データ・テーブルのプロパティー・ビューが開きます。
- データ・テーブルのプロパティー・ビューの「行アクション」タブで、「行の内容をインプレース編集するためのフォームを呼び出す編集列を追加」の隣りの「追加」をクリックします。 JSP パネルを含む新規の行編集列がデータ・テーブルに追加されます。
- ここで、ユーザーが容易に行を編集できるように、新しい列に小さなフォームを作成する必要があります。 以下は、そのフォームを作成するための 1 つの方法です。
- ページ・データ・ビューを開きます。テーブルの読み取り専用部分で使用するデータをパネル (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 の関連レコードとレコード・リストにのみ有効ですので注意してください。
- これで「規則の追加」をクリックして、行編集プロパティー・ビューにナビゲーション規則を設定することが可能になりました。これらの規則はアクションが実行されたときのジャンプ先ページを識別します。