URL-адрес для новой звукозаписывающей странице с {орг URL}/{3 буквы объекта префикс}/е?».
You может определить ваш метод сохранения следующим образом, где m_sc является ссылка на standardController передается на ваш добавочный номер в это конструктор:
public Pagereference doSaveAndNew()
{
SObject so = m_sc.getRecord();
upsert so;
string s = '/' + ('' + so.get('Id')).subString(0, 3) + '/e?';
ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.Info, s));
return new Pagereference(s);
}
чтобы использовать контроллер в качестве расширения, изменить его конструктор взять ссылку StandardController в качестве аргумента:
public class TimeSheetExtension
{
ApexPages.standardController m_sc = null;
public TimeSheetExtension(ApexPages.standardController sc)
{
m_sc = sc;
}
//etc.
Затем просто измените <apex:page>
тег на странице, чтобы ссылаться на него как расширение:
<apex:page standardController="Timesheet__c" extensions="TimeSheetExtension">
<apex:form >
<apex:pageMessages />
{!Timesheet__c.Name}
<apex:commandButton action="{!doCancel}" value="Cancel"/>
<apex:commandButton action="{!doSaveAndNew}" value="Save & New"/>
</apex:form>
</apex:page>
Обратите внимание, что вам не нужно расширение в имени класса , Я просто сделал это, чтобы быть разумным. Вам не нужно изменять что-либо еще на своей странице, чтобы использовать этот подход.
В каком издании Salesforce вы работаете? –
Если вы будете развертывать это из своей организации разработчика, любое решение с пользовательскими контроллерами потребует Enterprise Edition или больше. –