Trailhead カスタムコントローラの作成と使用方法のサンプル
環境
salesforce
実装機能
新規ケースを表示する Visualforce ページを作成する カスタムコントローラを使用して状況が「新規」のケースのリストを表示する Visualforce ページを作成します。 Challenge の要件 新しい Visualforce ページを作成する: 表示ラベル: NewCaseList 名前: NewCaseList カスタム Apex コントローラを作成する: 名前: NewCaseListController getNewCases という名前で範囲が public のメソッドを追加する 戻り値のデータ型に List<Case> を使用する ID 項目と CaseNumber 項目を含むケースレコードのリストを返す 返された結果を状況が New のものだけに絞り込む NewCaseList Visualforce ページでは次の特性を持つ 1 つの apex:repeat コンポーネントを使用する: newCases にバインドする var 属性を case として参照する コンポーネントタグを使用して apex:outputLink コンポーネントをケースの ID にバインドする。これにより、ユーザはページから各ケースレコードの詳細ページにリダイレクトされます。
操作例
1.Apexコントローラ側コード(NewCaseListController.apxc)
List<case>を取得する
List<case>リスト変数名 = database.quert('xxx’);
サンプルコード
public class NewCaseListController{ public List<Case> getNewCases(){ List<case> results = database.query('select id,casenumber from case where status = \'new\''); return results; } }
2.Visualforce側コード
apex:repeat value="{! NewCases}" var="case"
指定する構造に基づいてコレクションのコンテンツを出力できる反復コンポーネントです。
コレクションには、最大 1,000 個の項目を含められます。
apex:repeatコンポーネントを使用して、sObject の項目に対応しないコントローラメソッドのユーザ入力を取得します。
サンプルコード
<apex:page controller="NewCaseListController"> <apex:pageBlock > <apex:pageBlockSection columns="1"> CaseId <apex:repeat value="{! NewCases}" var="case"> <apex:outputLink value="/{! case.id}">{! case.casenumber}</apex:outputLink> </apex:repeat> </apex:pageBlockSection> </apex:pageBlock> </apex:page>