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

StandardSetController クラス

StandardSetController オブジェクトを使用すると、Salesforce が提供する、プリビルドされた Visualforce リストコントローラーと同様のリストコントローラー、またはその拡張としてリストコントローラーを作成できます。

名前空間

ApexPages

使用方法

StandardSetController クラスには、プロトタイプオブジェクトも含まれます。これは、Visualforce の StandardSetController クラスに含まれる単一の sObject です。プロトタイプオブジェクトの項目が設定されている場合、それらの値は、保存操作中に使用されます。つまり、値は設定されたコントローラーコレクションのすべてのレコードに適用されます。これは、一括更新 (オブジェクトのコレクション内の項目に同一の変更を適用) を実行するページを記述するときに役立ちます。

他の Salesforce オブジェクトに必要な項目は、プロトタイプオブジェクトに使用される場合にも必要です。

メモ

インスタンス化

次のいずれかの方法で、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 のレコード数の上限は 10,000 件です。10,000 件を超えるレコードを返すクエリロケーターを使用して StandardSetController をインスタンス化すると、LimitException が発生します。ただし、10,000 件を超えるレコードのリストを使用して StandardSetController をインスタンス化すると、例外が発生する代わりに、レコードが上限まで切り捨てられます。

メモ

次の例では、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)

パラメーター

controllerSObjects
型: List<sObject>
標準オブジェクトまたはカスタムオブジェクトのリスト。

1List<account> accountList = [SELECT Name FROM Account LIMIT 20];
2ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList);

StandardSetController メソ���ド

StandardSetController のメソッドは次のとおりです。すべてインスタンスメソッドです。

cancel()

元のページ (わかっている場合)、またはホームページの PageReference を返します。

署名

public System.PageReference cancel()

戻り値

型: System.PageReference

first()

コントローラーが返すレコードのセットを、レコードの最初のページに変更します。

署名

public Void first()

戻り値

型: Void

getCompleteResult()

セット内に存在するレコード数がレコード数の上限を超えているかどうかを示します。false の場合、レコード数がリストコントローラーを使用して処理できる数を超えています。レコード数の上限は 10,000 レコードです。

署名

public Boolean getCompleteResult()

戻り値

型: Boolean

getFilterId()

現在のコンテキストでの検索条件の ID を返します。

署名

public String getFilterId()

戻り値

型: String

getHasNext()

現在のページセットの後に、より多くのレコードがあるかどうかを示します。

署名

public Boolean getHasNext()

戻り値

型: Boolean

getHasPrevious()

現在のページセットの前に、より多くのレコードがあるかどうかを示します。

署名

public Boolean getHasPrevious()

戻り値

型: Boolean

getListViewOptions()

現在のユーザーが使用できるリストビューのリストを返します。

署名

public System.SelectOption getListViewOptions()

戻り値

型: System.SelectOption[]

getPageNumber()

現在のページセットのページ番号を返します。最初のページは 1 を返します。

署名

public Integer getPageNumber()

戻り値

型: Integer

getPageSize()

各ページセットに存在するレコード数を返します。

署名

public Integer getPageSize()

戻り値

型: Integer

getRecord()

選択したレコードへの変更を示す sObject を返します。クラス内に含まれるプロトタイプオブジェクトを取得し、一括更新の実行に使用されます。

署名

public sObject getRecord()

戻り値

型: sObject

getRecords()

現在のページセットにある sObject のリストを返します。このリストは不変であるため、clear() をコールできません。

署名

public sObject[] getRecords()

戻り値

型: sObject[]

getResultSize()

セットに存在するレコード数を返します。

署名

public Integer getResultSize()

戻り値

型: Integer

getSelected()

選択されている sObject のリストを返します。

署名

public sObject[] getSelected()

戻り値

型: sObject[]

last()

コントローラーが返すレコードのセットを、レコードの最後のページに変更します。

署名

public Void last()

戻り値

型: Void

next()

コントローラーが返すレコードのセットを、レコードの次のページに変更します。

署名

public Void next()

戻り値

型: Void

previous()

コントローラーが返すレコードのセットを、レコードの前のページに変更します。

署名

public Void previous()

戻り値

型: Void

save()

新しいレコードを挿入するか、変更された既存のレコードを更新します。この操作が完了した後、元のページ (わかっている場合)、またはホームページの PageReference を返します。

署名

public System.PageReference save()

戻り値

型: System.PageReference

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