问题
I know that this is how to save a record
<apex:commandButton action="{!save}" value="Save"/>
I want a button to NOT save the current record (ie. Cancel) and navigate to the list of saved record (ie. list of objects for that object type).
Something like this...
<apex:commandButton action="{!cancel}" value="Cancel"/>
回答1:
The list view for an object is your base URL / the 3 letter prefix for your object / o, for example:
https://na1.salesforce.com/a0C/o
So you could just create an action method that returns a Pagereference
with the appropriate URL and set to redirect (pr.setRedirect(true)
).
Alternatively, you could use your controller as an extension to a standard controller, and just call cancel on the standard controller:
// controller extension
public class TimeSheetExtension
{
ApexPages.standardController m_sc = null;
public TimeSheetExtension(ApexPages.standardController sc)
{
m_sc = sc;
}
public PageReference doCancel()
{
return m_sc.cancel();
}
}
// page
<apex:commandButton action="{!doCancel}" value="Cancel"/>
Note that this doesn't necessarily take you to the list view, it'll return you to the last page you were viewing before going to the VF page.
回答2:
You should also add the immediate tag to your Cancel button, so that the form doesn't run any validation before performing the Cancel operation.
<apex:commandButton action="{!cancel}" immediate="true" value="Cancel"/>
See http://blogs.developerforce.com/developer-relations/2008/12/using-the-immediate-attribute-on-commandlinks-and-commandbuttons.html
回答3:
While applying cancel operation visualforce you should stop the form validation.Use below any one methods to stop the form validation based on your requirements.
Method 1:
Using
html-5 in doctype in visualforce page
means you should use html-formnovalidate and immediate
in cancel button. For example
<apex:commandButton action="{!cancel}" value="Cancel" immediate="true"
html-formnovalidate="formnovalidate" />
Method 2:
you should use immediate
key word only need for stopping form validation. For Example
<apex:commandButton action="{!cancel}" value="Cancel" immediate="true"/>
来源:https://stackoverflow.com/questions/8921434/how-to-implement-cancel-functionality-in-a-visualforce-page