StandardSetController クラス
StandardSetController オブジェクトを使用すると、Salesforce が提供する、プリビルドされた Visualforce リストコントローラーと同様のリストコントローラー、またはその拡張としてリストコントローラーを作成できます。
名前空間
使用方法
StandardSetController クラスには、プロトタイプオブジェクトも含まれます。これは、Visualforce の StandardSetController クラスに含まれる単一の sObject です。プロトタイプオブジェクトの項目が設定されている場合、それらの値は、保存操作中に使用されます。つまり、値は設定されたコントローラーコレクションのすべてのレコードに適用されます。これは、一括更新 (オブジェクトのコレクション内の項目に同一の変更を適用) を実行するページを記述するときに役立ちます。
インスタンス化
次のいずれかの方法で、StandardSetController をインスタンス化することができます。
- sObjects のリストを使用する場合:
1List<account> accountList = [SELECT Name FROM Account LIMIT 20]; 2ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList); - クエリロケーターを使用する場合:
1ApexPages.StandardSetController ssc = 2new ApexPages.StandardSetController(Database.getQueryLocator([SELECT Name,CloseDate FROM Opportunity]));
例
次の例では、StandardSetController オブジェクトのカスタムリストコントローラーのコンストラクターでの使用方法を示します。
1public class opportunityList2Con {
2 // ApexPages.StandardSetController must be instantiated
3 // for standard list controllers
4 public ApexPages.StandardSetController setCon {
5 get {
6 if(setCon == null) {
7 setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
8 [SELECT Name, CloseDate FROM Opportunity]));
9 }
10 return setCon;
11 }
12 set;
13 }
14
15 // Initialize setCon and return a list of records
16 public List<Opportunity> getOpportunities() {
17 return (List<Opportunity>) setCon.getRecords();
18 }
19}次の Visualforce マークアップは、上記のコントローラーをページ内で使用する方法を示します。
1<apex:page controller="opportunityList2Con">
2 <apex:pageBlock>
3 <apex:pageBlockTable value="{!opportunities}" var="o">
4 <apex:column value="{!o.Name}"/>
5 <apex:column value="{!o.CloseDate}"/>
6 </apex:pageBlockTable>
7 </apex:pageBlock>
8</apex:page>StandardSetController コンストラクター
StandardSetController のコンストラクターは次のとおりです。
StandardSetController(queryLocator)
クエリロケーターによって返されるオブジェクトのリストの ApexPages.StandardSetController クラスのインスタンスを作成します。
署名
public StandardSetController(Database.QueryLocator queryLocator)
パラメーター
- queryLocator
- 型: Database.QueryLocator
- sObject のリストを表すクエリロケーター。
StandardSetController(controllerSObjects)
指定した標準オブジェクトまたはカスタムオブジェクトのリストの ApexPages.StandardSetController クラスのインスタンスを作成します。
署名
public StandardSetController(List<sObject> controllerSObjects)
例
1List<account> accountList = [SELECT Name FROM Account LIMIT 20];
2ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList);StandardSetController メソ���ド
StandardSetController のメソッドは次のとおりです。すべてインスタンスメソッドです。
cancel()
元のページ (わかっている場合)、またはホームページの PageReference を返します。
署名
public System.PageReference cancel()
戻り値
getCompleteResult()
セット内に存在するレコード数がレコード数の上限を超えているかどうかを示します。false の場合、レコード数がリストコントローラーを使用して処理できる数を超えています。レコード数の上限は 10,000 レコードです。
署名
public Boolean getCompleteResult()
戻り値
型: Boolean
getListViewOptions()
現在のユーザーが使用できるリストビューのリストを返します。
署名
public System.SelectOption getListViewOptions()
戻り値
型: System.SelectOption[]
getRecord()
選択したレコードへの変更を示す sObject を返します。クラス内に含まれるプロトタイプオブジェクトを取得し、一括更新の実行に使用されます。
署名
public sObject getRecord()
戻り値
型: sObject
getRecords()
現在のページセットにある sObject のリストを返します。このリストは不変であるため、clear() をコールできません。
署名
public sObject[] getRecords()
戻り値
型: sObject[]
save()
新しいレコードを挿入するか、変更された既存のレコードを更新します。この操作が完了した後、元のページ (わかっている場合)、またはホームページの PageReference を返します。
署名
public System.PageReference save()
戻り値
setFilterID(filterId)
コントローラーの検索条件 ID を設定します。
署名
public Void setFilterID(String filterId)
パラメーター
- filterId
- 型: String
戻り値
型: Void
setpageNumber(pageNumber)
ページ番号を設定します。
署名
public Void setpageNumber(Integer pageNumber)
パラメーター
- pageNumber
- 型: Integer
戻り値
型: Void
setPageSize(pageSize)
各ページセット内のレコード数を設定します。
署名
public Void setPageSize(Integer pageSize)
パラメーター
- pageSize
- 型: Integer
戻り値
型: Void
setSelected(selectedRecords)
選択したレコードを設定します。
署名
public Void setSelected(sObject[] selectedRecords)
パラメーター
- selectedRecords
- 型: sObject[]
戻り値
型: Void