StandardSetController Class:
StandardSetController objects allow you to create list controllers similar to, or as extensions of, the pre-built Visualforce list controllers provided by Salesforce. The StandardSetController class also contains a prototype object. This is a single sObject contained within the Visualforce StandardSetController class. If the prototype object's fields are set, those values are used during the save action, meaning that the values are applied to every record in the set controller's collection. This is useful for writing pages that perform mass updates (applying identical changes to fields within a collection of objects).
Note:Fields that are required in other Salesforce objects will keep the same requiredness when used by the prototype object.
Keep in mind the following governor limits for batch Apex:
· Up to five queued or active batch jobs are allowed for Apex.
· A user can have up to five query cursors open at a time. For example, if five cursors are open and a client application still logged in as the same user attempts to open a new one, the oldest of the five cursors is released.
Cursor limits for different Force.com features are tracked separately. For example, you can have five Apex query cursors, five batch cursors, and five Visualforce cursors open at the same time.
§ A maximum of 50 million records can be returned in the Database.QueryLocator object. If more than 50 million records are returned, the batch job is immediately terminated and marked as Failed.
§ The maximum value for the optional scope parameter is 2,000. If set to a higher value, Salesforce chunks the records returned by the QueryLocator into smaller batches of up to 2,000 records.
§ If no size is specified with the optional scope parameter, Salesforce chunks the records returned by the QueryLocator into batches of 200, and then passes each batch to the execute method. Apex governor limits are reset for each execution of execute.
§ The start, execute and finish methods can implement only one callout in each method.
§ Batch executions are limited to one callout per execution.
§ The maximum number of batch executions is 250,000 per 24 hours.
§ Only one batch Apex job's start method can run at a time in an organization. Batch jobs that haven’t started yet remain in the queue until they're started. Note that this limit doesn’t cause any batch job to fail and executemethods of batch Apex jobs still run in parallel if more than one job is running.
· From a list of sObjects:
· List<account> accountList = [SELECT Name FROM Account LIMIT 20];
ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(accountList);
· From a query locator:
· ApexPages.StandardSetController ssc =
new ApexPages.StandardSetController(Database.getQueryLocator([SELECT Name,CloseDate FROM Opportunity]));
Methods
StandardSetController methods are all called by and operate on a particular instance of a StandardSetController.
The table below describes the instance methods for StandardSetController.
Name | Arguments | Return Type | Description |
cancel | System.PageReference | Returns the PageReference of the original page, if known, or the home page. | |
first | Void | Returns the first page of records. | |
getCompleteResult | Boolean | Indicates whether there are more records in the set than the maximum record limit. If this is false, there are more records than you can process using the list controller. The maximum record limit is 10,000 records. | |
getFilterId | String | Returns the ID of the filter that is currently in context. | |
getHasNext | Boolean | Indicates whether there are more records after the current page set. | |
getHasPrevious | Boolean | Indicates whether there are more records before the current page set. | |
getListViewOptions | Returns a list of the listviews available to the current user. | ||
getPageNumber | Integer | Returns the page number of the current page set. Note that the first page returns 1. | |
getPageSize | Integer | Returns the number of records included in each page set. | |
getRecord | sObject | Returns the sObject that represents the changes to the selected records.This retrieves the prototype object contained within the class, and is used for performing mass updates. | |
getRecords | sObject[] | Returns the list of sObjects in the current page set. This list is immutable, i.e. you can't call clear() on it. | |
getResultSize | Integer | Returns the number of records in the set. | |
getSelected | sObject[] | Returns the list of sObjects that have been selected. | |
last | Void | Returns the last page of records. | |
next | Void | Returns the next page of records. | |
previous | Void | Returns the previous page of records. | |
save | System.PageReference | Inserts new records or updates existing records that have been changed. After this operation is finished, it returns a PageReference to the original page, if known, or the home page. | |
setFilterID | String filterId | Void | Sets the filter ID of the controller. |
setpageNumber | Integer pageNumber | Void | Sets the page number. |
setPageSize | Integer pageSize | Void | Sets the number of records in each page set. |
setSelected | sObjects[] selectedRecords | Void | Set the selected records. |
Example:
Controller Code:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public class opportunityList2Con {
// ApexPages.StandardSetController must be instantiated
// for standard list controllers
// Initialize setCon and return a list of records
List<Opportunity> opplst=[select name,closedate from opportunity];
ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(opplst);
public List<Opportunity> getOpportunities() {
return (List<Opportunity>) ssc.getRecords();
}
}
Page Code:
<apex:page controller="opportunityList2Con">
<apex:pageBlock >
<apex:pageBlockTable value="{!opportunities}" var="o">
<apex:column value="{!o.name}"/>
<apex:column value="{!o.closedate}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
No comments:
Post a Comment