【Apex】標準リストコントローラの使い方

スポンサーリンク
標準リストコントローラの使い方 Apex

こんにちは、にいるです。

今回は、Apexの「標準リストコントローラの使い方」について、書いてみたいと思います。

標準リストコントローラも標準コントローラと同様、デベロッパー試験にも出題されます。
これから受ける方はしっかり理解しておくことをおすすめします。

【ヘルプ】標準リストコントローラ

1.標準リストコントローラとは

標準リストコントローラとは、レコードセット単位で表示や操作を実行できるVisualforceページを作成できる機能です。

標準コントローラでは、1つのレコードIDしか持てないので、1つのページに1つのレコードしか表示できませんでしたが、標準リストコントローラを使用すれば1つのページに複数のレコードを操作できます。
※標準コントローラは下記からご覧ください。
 
標準コントローラの使い方
 

また、標準コントローラとの違いは、使用できるオブジェクトとアクションに現れます。

標準コントローラでは、カスタムオブジェクト含めて全ての標準オブジェクトに使用できますが、標準リストコントローラの場合は一部の標準オブジェクトには使用できません。

さらにアクションメソッドも標準リストコントローラにはページネーション系が追加されます。

下記の表にそれぞれの違いをまとめてみました。

相違点 標準 標準リスト
オブジェクト 全て 一部
ページネーション ✖︎
アクション save
quicksave
edit
delete
cancel
list
save
quicksave
list
cancel
first
last
next
previous

2.標準リストコントローラの使い方

では、実際に標準リストコントローラを2段階に分けて見ていきます。

2-1.標準リストコントローラでレコードセットを取得

①ここでは標準コントローラと同じように取得したいオブジェクトのAPI名をstandardControllerの属性に指定します。
 さらに、recordSetVarにstandardControllerに指定したオブジェクトの複数形を記載します。(命名規則です。)
②リストとして取得したレコードデータを反復コンポーネントを使用して全表示しています。

■デバッグ結果

これを実行すると下記ページのように、対象レコードを取得してきれいにテーブル化された一覧リストが表示されます。
 
標準リストコントローラの使い方
 

VisualforceページにName項目にリンクを貼ればそこから個別のレコードページにも遷移することもできます。

2-2.標準リストコントローラでリストビューを呼び出す

Visualforceタグの「apex:selectOptions」を使用すれば、ユーザがアクセスできる既存のリストビューを呼び出すこともできます。

③ {! listViewOptions }は標準リストコントローラで使用できる値です。これを使用してリストビューを取得しています。

■デバッグ
テーブルの左上部でプルダウン形式でリストビューが選べるようになっていますね。
 
標準リストコントローラの使い方
 

2-3.標準リストコントローラでページネーション

と、ここまでは標準コントローラにちょっと足しただけなので、かなりすっきり理解が進むと思います。
次にページネーションアクションを使用したコードを見ていきます。

レコードが1,000件のように大量にレコードが存在する場合、上記2つのコードでは全く使用できないページになります。

そこで使用する機能がページネーションで、よくある「前へ」、「次へ」のリンクを表示させてリストを分割して表示する機能です。

④ポイントは「PageNumber、ResultSize、PageSize」です。
⑤これらで取得した件数やページサイズをカウントして、Visualforceページにレコードのリストを表示しています。

これは標準コントローラでは実現できない機能です。
また、カスタムコントローラを使用して作成するにしてもApexクラスを書かないといけなく、テストクラスも作成しないといけなくなります。

それを踏まえると標準リストコントローラはかなり便利な機能ですね。
ロジックを全てVisualforceコントローラで自動処理するため、開発初心者の方でもうまく書けると思います。

■デバッグ結果
ページ下部にページ数や現在のページ位置を確認できるテキストが表示されていますね。
また、件数表示を5件か20件に選べるようにもなっています。
 
標準リストコントローラの使い方
 

3.まとめ

いかがでしたでしょうか。

レコード詳細ページをカスタマイズしたいときは標準コントローラを使用し、
レコードをセットでリスト表示したいときは標準リストコントローラを使用する、

と言うふうに覚えておくといいと思います。

このほかにもコントローラ拡張やカスタムコントローラもあるので、それぞれの特徴を把握しておくことが大切だと思います。

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!

Salesforce 機能別 まとめページ

コメント

タイトルとURLをコピーしました