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>

 

Trailhead

Posted by arkgame