In addition to overriding standard buttons and links, you can also create custom list
buttons that link to pages that use a standard list controller. These list buttons can
be used on a list page, search results, and any related list for the object and allow
you to take actions on a group of selected records. To indicate the set of records that
have been selected, use the {!selected}
expression.
For example, to add a custom button to a related list for opportunities that allows you
to edit and save the opportunity stage and close date on selected records:
- Create the following Apex
class:
public class tenPageSizeExt {
public tenPageSizeExt(ApexPages.StandardSetController controller) {
controller.setPageSize(10);
}
}
- Create the following page and call it oppEditStageAndCloseDate:
<apex:page standardController="Opportunity" recordSetVar="opportunities" tabStyle="Opportunity" extensions="tenPageSizeExt">
<apex:form >
<apex:pageBlock title="Edit Stage and Close Date" mode="edit">
<apex:pageMessages />
<apex:pageBlockButtons location="top">
<apex:commandButton value="Save" action="{!save}"/>
<apex:commandButton value="Cancel" action="{!cancel}"/>
</apex:pageBlockButtons>
<apex:pageBlockTable value="{!selected}" var="opp">
<apex:column value="{!opp.name}"/>
<apex:column headerValue="Stage">
<apex:inputField value="{!opp.stageName}"/>
</apex:column>
<apex:column headerValue="Close Date">
<apex:inputField value="{!opp.closeDate}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
- Make the page available to all users.
- From Setup, enter Visualforce Pages in the
Quick Find box, then select Visualforce
Pages.
- Click Security for the oppEditStageAndCloseDate
page.
- Add the appropriate profiles to the Enabled
Profiles list.
- Click Save.
- Create a custom button on opportunities.
- From the object management settings for opportunities, go to Buttons,
Links, and Actions.
- Click the button for creating a new button or link.
- Set the Label to Edit Stage &
Date.
- Set the Display Type to List
Button.
- Set the Content Source to Visualforce Page.
- From the Content drop-down list, select
oppEditStageAndCloseDate.
- Click Save.
- A warning will display notifying you that the button will not be
displayed until you have updated page layouts. Click
OK.
- Add the custom button to an account page layout.
- From the object management settings for accounts, go to Page
Layouts.
- Click Edit for the appropriate page layout.
- In the Related List Section, click on
Opportunities, then click
to edit the
properties.
- In the Custom Buttons section, select Edit Stage &
Date in the Available Buttons list and add it to the
Selected Buttons list.
- Click OK.
- Click Save.
Now, when you visit the account page, there is a new button in the opportunities
related list.
Example of New Button
When you select an opportunity and click
Edit Stage &
Date, you are taken to your custom edit page.
Example of Custom Edit Page