Continuing from my previous post. I want to redirect the user to a custom vf detail page when they create a new Service Order from my custom page order page (force_NewOrder).
I have created a extension which should save and redirect the user but I am given a generic error:
Error: Error occurred while loading a Visualforce page.
VF (force_NewOrder)
<apex:page showHeader="false" title="New Order" standardController="Service_Order__c" extensions="force_NewOrderLogic">
<apex:composition template="{!$Site.Template}">
<apex:define name="body">
<h2 style="margin-top:0">New Order</h2>
<div class="row">
<apex:form styleClass="form" >
<apex:pageMessages id="styledError"/>
<apex:messages id="unstyledError"/>
<div class="row">
<div class="col-md-6 col-xs-12">
<div class="row">
<div class="form-group col-xs-12">
<label for="project-name">Project Name</label>
<apex:inputField value="{!Service_Order__c.Name}" required="true" styleClass="form-control" />
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12 text-right">
<a href="/force_Orders" class="btn btn-default">Cancel</a>
<apex:commandButton value="Create Order" action="{!save}" styleClass="btn btn-success" rerender="error,styledError,unstyledError"/>
</div>
</div>
</apex:form>
</div>
</apex:define>
</apex:composition>
</apex:page>
Extension:
public class force_NewOrderLogic {
public force_NewOrderLogic(ApexPages.StandardController controller) {
}
Service_Order__c order;
public PageReference save() {
insert order;
PageReference orderPage = new PageReference('/force_OrderDetail?id=' + order.id);
orderPage.setRedirect(true);
return orderPage;
}
}
Best Answer
I found an answer here that might work for you as well, where the solution would be to change your "Save" method to the following:
Then change your action on the VF page to "saveAndRedirect".
Reason: