この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

複数のレコードの登録

ライブコントローラによって複数のレコードを登録するには、標準のリストコントローラまたは records 属性を持つカスタムコントローラを使用します。

標準リストコントローラ

ライブコントローラは、recordSetVar 属性を持つ標準リストコントローラによって使用されるレコードへの変更を自動的に追跡します。

次の例は、フォームで商談レコードのリストを更新する方法について示しています。商談名または金額が更新されると、ライブコントローラによって Visualforce ページが更新されます。

recordSetVar 属性を設定することは、Visualforce ページで標準リストコントローラを使用することを示します。opptys の値によって、レコードコレクション内の変数名が設定されています。この変数名を使用して、コレクションのデータにアクセスします。

標準リストコントローラの定義の後に、ライブコントローラを追加します。form 要素内に、pageBlock コンポーネントを作成し、リスト内のレコードに実行を繰り返します。pageBlockButtons 子要素には、標準リストコントローラの操作である「Previous」 (前へ) と「Next」 (次へ) のボタンが含まれており、リストの非表示の結果を表示するために使用できます。

<apex:pageBlockTable><apex:repeat> などの繰り返しコンポーネントでは、ライブコントローラを使用しないでください。ライブコントローラは Visualforce ページごとに 1 つだけ使用できます。

メモ

reRender 属性による有効な要素の制御

reRender 属性を使用して、ユーザ入力要素が操作にどのように反応するかを制御できます。この構文は reRender="{elementId}" です。ユーザの操作が行われた後、この属性によって割り当てられているコンポーネントのみが更新されます。この属性をライブコントローラと共に使用すると、要素が有効になったときにもデータの更新が一時停止されます。これは、ユーザがフォーム項目にテキストを入力したときと同じです。ライブコントローラを含む Visualforce ページでは、reRender<apex:liveController> のみで使用します。他のコンポーネントでは使用しないでください。

records 属性を持つカスタムコントローラ

カスタムコントローラ内の複数のレコードへの変更を追跡するには、records 属性を使用します。この属性を含めない場合、Visualforce では、標準コントローラによって追跡されているレコードの更新のみが表示されます。他のレコードへの更新はページに読み込まれません。

次の例では、カスタムコントローラ DonationsController の寄付に関連する情報のリストが表示されます。Donation_Site__c オブジェクトに関連付けられたレコードをすべて取得するには、式 {! donationLocations}records 属性に割り当てます。次に、テーブルを保持するフォームを作成します。ここで寄付の場所のリストを反復処理します。各行には名前と住所を表示する 2 つの列があります。

DonationsController クラスでは、getDonationLocations() メソッドによって、寄付の場所のリストが読み込まれます。

制限事項

ライブコントローラを使用して複数のレコードの変更を登録すると、レコードが更新されたときにページが更新されます。Visualforce の 1 ページごとに最大 50 のレコードと 5 つのオブジェクトを登録できます。たとえば、1 つのページで取引先、商談、および 3 つのカスタムオブジェクトを登録できます。