Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
StandardSetController Class
Namespace
Usage
Instantiation
- From a list of
sObjects:
1List<account> accountList = [SELECT Name FROM Account LIMIT 20]; 2ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList); - From a query
locator:
1ApexPages.StandardSetController ssc = 2new ApexPages.StandardSetController(Database.getQueryLocator([SELECT Name,CloseDate FROM Opportunity]));
Example
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}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 Constructors
The following are constructors for StandardSetController.
StandardSetController(queryLocator)
Signature
public StandardSetController(Database.QueryLocator queryLocator)
Parameters
- queryLocator: Type: Database.QueryLocator A query locator representing a list of sObjects.
StandardSetController(controllerSObjects)
Signature
public StandardSetController(List<sObject> controllerSObjects)
Example
1List<account> accountList = [SELECT Name FROM Account LIMIT 20];
2ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList);StandardSetController Methods
The following are methods for StandardSetController. All are instance methods.
cancel()
Signature
public System.PageReference cancel()
Return Value
Type: System.PageReference
first()
Signature
public Void first()
Return Value
Type: Void
getCompleteResult()
Signature
public Boolean getCompleteResult()
Return Value
Type: Boolean
getFilterId()
Signature
public String getFilterId()
Return Value
Type: String
getHasNext()
Signature
public Boolean getHasNext()
Return Value
Type: Boolean
getHasPrevious()
Signature
public Boolean getHasPrevious()
Return Value
Type: Boolean
getListViewOptions()
Signature
public System.SelectOption getListViewOptions()
Return Value
Type: System.SelectOption[]
getPageNumber()
Signature
public Integer getPageNumber()
Return Value
Type: Integer
getPageSize()
Signature
public Integer getPageSize()
Return Value
Type: Integer
getRecord()
Signature
public sObject getRecord()
Return Value
Type: sObject
getRecords()
Signature
public sObject[] getRecords()
Return Value
Type: sObject[]
getResultSize()
Signature
public Integer getResultSize()
Return Value
Type: Integer
getSelected()
Signature
public sObject[] getSelected()
Return Value
Type: sObject[]
last()
Signature
public Void last()
Return Value
Type: Void
next()
Signature
public Void next()
Return Value
Type: Void
previous()
Signature
public Void previous()
Return Value
Type: Void
save()
Signature
public System.PageReference save()
Return Value
Type: System.PageReference
setFilterID(filterId)
Signature
public Void setFilterID(String filterId)
Parameters
- filterId: Type: String
Return Value
Type: Void
setpageNumber(pageNumber)
Signature
public Void setpageNumber(Integer pageNumber)
Parameters
- pageNumber: Type: Integer
Return Value
Type: Void
setPageSize(pageSize)
Signature
public Void setPageSize(Integer pageSize)
Parameters
- pageSize: Type: Integer
Return Value
Type: Void
setSelected(selectedRecords)
Signature
public Void setSelected(sObject[] selectedRecords)
Parameters
- selectedRecords: Type: sObject[]
Return Value
Type: Void
Usage
Use the setSelected() method in your Apex controller or controller extension to manually set the records displayed on a Visualforce page. The setSelected() method overwrites any previously selected records with the records specified in the selectedRecords argument.
Example
AccountNamePage shows a table of account names. MyControllerExtension’s constructor contains a SOQL query that returns a list of accounts. This list is passed into setSelected() so that the account records in the list are selected and displayed in the table.
1<!-- AccountNamePage.page -->
2<apex:page standardController="Account" recordSetVar="accounts" extensions="MyControllerExtension">
3 <apex:pageBlock>
4 <apex:pageBlockTable value="{!accounts}" var="acc">
5 <apex:column value="{!acc.name}"/>
6 </apex:pageBlockTable>
7 </apex:pageBlock>
8</apex:page>
9
10
11// MyControllerExtension.cls
12public with sharing class MyControllerExtension {
13 private ApexPages.StandardSetController setController;
14
15 public MyControllerExtension(ApexPages.StandardSetController setController) {
16 this.setController = setController;
17
18 Account [] records = [SELECT Id, Name FROM Account LIMIT 30];
19 setController.setSelected(records);
20 }
21}