データ・テーブルの 1 つまたは複数の行を選択して、その行に対するアクションを実行するための機能を追加できます。
データ・テーブルをページ上に配置した後、行選択サポートを追加することができます。
- データ・テーブルを選択します。
- データ・テーブルのプロパティー・ビューの「行アクション」タブで、「選択列をテーブルに追加 (Add selection column to the table)」の横の「追加」をクリックします。 新しい列がデータ・テーブルの左端に追加されます。この列にはチェック・ボックスが含まれています。(後ほど、行選択列を除去する場合は、「追加」 ボタンが
「除去」ボタンに変わることに注意してください。)
- 新しい列のチェック・ボックスを選択します。
- inputRowSelect のプロパティー・ビューで、次のようにします。
- チェック・ボックスでプロパティーとスタイルを設定するか、デフォルトのチェック・ボックス代わりに使用する新しいイメージを選択することができます。
- データ・テーブルのフッターに選択ツールバーを追加するには、「選択ツールバーの追加」の横の「追加」をクリックします。
(ツールバーはヘッダーに移動することもできます。) ユーザーは選択ツールバーで、行を選択することができます。
- データ・テーブルのフッターに選択コンボ・ボックスを追加するには、「選択コンボ・ボックスの追加」の横の「追加」をクリックします。
(コンボ・ボックスはヘッダーに移動することもできます。) 選択コンボ・ボックスでは、ユーザーは行をすべて選択するか、1 行も選択しないことができます。
- 行選択コンポーネントのバインドには幾つかのオプションがあります。
- コレクションを実装するオブジェクト (例えば、AbstractList)。
ページが実行されると、コレクションには「パラメーター」タブで内容が定義された MAP オブジェクトが含まれます。このオプションを実装するには、inputRowSelect の下の「パラメーター」タブをクリックして、行選択列とデータ・ソースを関連付けるパラメーターを追加します。 またこれは選択された行を識別します。inputRowSelect のパラメーターのプロパティー・ビューが開いた後、「パラメーターの追加」をクリックしてパラメーターを追加します。そして、デフォルトのパラメーター名を選択して新しい名前をつけます。パラメーターの値を選択して、値の隣りに表示されるボタンをクリックし、「ページ・データ・オブジェクト選択」ダイアログを表示します。このダイアログで、データ・テーブルのデータ・ソースの
主キーのフィールドを選択し、「OK」をクリックします。行選択がデータ・ソースにバインドされます。
- Boolean[] または boolean[] オプション。この配列は dataTable の行に対応します。最初の行は [0] に対応します。
- Integer[] または int[] オプション。この場合、配列には選択した行のインデックスが含まれます。配列長は行選択コンポーネントの要求に応じて変更されます。インデックスは、dataTable にバインドされたデータの特定の行のアクセスに使用されます。
- データ・テーブル (dataTable) にバインドされたデータのリストの列にバインドするときは「ブール」オプション。
- 選択した行でアクションを実行するためのボタンを 1 つ以上追加します。
- コマンド - ボタン・コンポーネント (またはコマンド - ハイパーリンク・コンポーネント) をパレットからページへドラッグします。
- ボタンのプロパティー・ビューの「表示オプション」タブで、「ボタン・ラベル」フィールドにボタンのラベルを入力します。
- ボタンの他の属性を設定します。
- ボタンのクイック編集ビューでボタンにアクションを関連付けます。
- 「ページへジャンプ」、「フォームの追加」、「レコードの更新」、「レコードの削除」などのコーディング済みアクションを追加するには、クイック編集ビューの右ペインで右クリックし、「断片の挿入」メニューからアクションを選択します。
- 独自のアクションをコーディングする場合は、クイック編集ビューの右ペインで左クリックし、デフォルトのコードを削除して独自のコードを追加します。
- アクションを使用してパラメーターを渡す例については、『データ・テーブルでのパラメーターの引き渡し』、または『 JSP ページ間でのパラメーターの引き渡し』を参照してください。
inputRowSelect コンポーネントは、その値が以下のオブジェクト・タイプのいずれかにバインドされている必要があります。バインドされる値は、非ヌル・オブジェクトに設定されていなければなりません。RowSelect の値は通常 Java™ Bean に保管されています。以下のオプション・リストの最初の 3 つのオプションは、
dataTable がリスト・オブジェクトを再ロードして、アクション・コードで使用できるようにする時に実行すると、より効率が良いことに注意してください。この値はレンダリングと通知応答の両方に使用されます。
- ブール - リスト・オブジェクトのプロパティーを処理します。
<h:dataTable value="#{pc_opage.myList}" var="varmyList">
<h:column>
<hx:inputRowSelect value="#{varmyList.selected}>
</h:column>
</h:dataTable>
- Boolean[] または boolean[] - リストにマッチングする配列。isSelected[4]
が true の場合、リストの 5 番目のエレメントが選択されました。
<h:dataTable value="#{pc_opage.myList}" var="varmyList">
<h:column>
<hx:inputRowSelect value="#{pc_opage.isSelected}>
</h:dataTable>
- Integer[] または int[] - リスト中で選択したエレメントのインデックスを含む配列。
<h:dataTable value="#{pc_opage.myList}" var="varmyList">
<h:column>
<hx:inputRowSelect value="#{pc_opage.selected}>
<h:column>
</h:dataTable>
- コレクション - Map オブジェクトを含むコレクション・オブジェクト (例えば、ArrayList)。各 Map は選択した各エレメントのパラメーターの子タグで定義される、名前/値のペアのセットを持っています。
<h:dataTable value="#{pc_opage.myList}" var="varmyList">
<h:column>
<hx:inputRowSelect value="#{pc_opage.selected}>
<h:column>
</h:dataTable>