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

カスタムコントローラによって保存されたデータのリセット

カスタムコントローラまたはコントローラ拡張によって保存されたデータを手動でリセットするには、action 属性を使用します。

Visualforce は標準コントローラのデータを自動的に更新します。すべてのロー���ル状態をリセットするには、独自のメソッドで action 属性を使用します。これにより、カスタムコントローラと拡張に含まれるデータが確実に更新されます。

例を見てみましょう。Visualforce ページで、ライブコントローラによって outputText コンポーネントの値が更新されます。式 {! fancyText} が更新されると、テキスト「Hello」の後に最新の取引先名が表示されます。Visualforce ページの標準コントローラによって取引先レコードが追跡されます。カスタム拡張の LiveExtension は、ページが更新されるたびに取引先レコードの取引先の項目 acct を追跡します。

この例では、データを手動でリセットする方法を示すために、標準コントローラ用のコントローラ拡張が作成されています。標準コントローラのデータをリセットする必要はありません。リセット機能が組み込まれています。

1<apex:page standardController="Account" extensions="LiveExtension">
2    <apex:liveController action="{! resetMe}" />
3    <apex:outputText value="{! fancyText}" />
4</apex:page>
1public class LiveExtension {
2    Private Account acct;
3    Private ApexPages.StandardController ctrl;
4    
5    public LiveExtension(ApexPages.StandardController ctrl) {
6        ctrl.addFields(new List<String>{'Name'});
7        this.ctrl = ctrl;
8        this.acct = (Account)ctrl.getRecord();
9    }
10    public void resetMe() {
11        acct = (Account)ctrl.getRecord();
12    }
13    public String getFancyText() {
14        return 'Hello ' + acct.name + ' (' + acct.id + ')';
15    }

LiveExtension には、取引先レコード acct と標準コントローラ ctrl の 2 つの非公開項目があります。コンストラクタは両方の項目をインスタンス化し、getRecord() を呼び出して、Visualforce ページが読み込みを実行するときに acct 項目に最新のデータが���納されるようにします。resetMe() 関数が再度 getRecord() を呼び出します。action 属性に resetMe() を設定しているため、ライブコントローラで変更が検出されると、ページが最新データで更新されます。最後に、getFancyText() が LiveExtension の acct 項目の名前と ID 項目を返します。Visualforce ページの式 {! fancyText} は、ページが読み込まれるたびに getFancyText() を呼び出します。