实施节约和新的按钮不工作
问题描述:
我下面这个链接页面上创建和保存的新功能实施节约和新的按钮不工作
How to implement "Save & New" functionality in a VisualForce Page
据我已经没有以下
1.创建一个顶点类机会并实现扩展方法
public with sharing class Opportunity
{
ApexPages.standardController m_sc = null;
public Opportunity(ApexPages.standardController sc)
{
m_sc = sc;
}
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);
}
}
编译没有
2.创建一个新的页面,扩展控制器,创建按钮和调用方法
<apex:page sidebar="false" standardController="Opportunity" extensions="Opportunity" >
<apex:form >
<apex:pageMessages />
{!Opportunity.Name}
<apex:commandButton action="{!doSaveAndNew}" value="Save & New"/>
</apex:form>
</apex:page>
这给了我错误“未知的方法‘OpportunityStandardController.doSaveAndNew()’”
我不知道哪一步我很想念在这个过程中
任何建议
答
的APEX类扩展不宜与对象名称 APEX类名同样 OpportunityController
APEX页 OpportunityPage
的代码应该是 <apex:page sidebar="false" standardController="Opportunity" extensions="OpportunityController" >
我想也许类名等于对象标准名称将错误
答
约瑟夫指出,页面试图访问方法在标准控制器'OpportunityStandardController.doSaveAndNew()'中找不到它,因为扩展和标准控制器都被称为相同的东西,它只是查找错误的类。
您可能只需要将您的控制器扩展名重命名为其他名称即可。我通常在类名的末尾加上“Extension”,所以我知道它是什么意思。作为一个例子,可能就像“OpportunitySaveExtension”一样。然后更新您的visualforce页面以引用“Extensions”属性中的重命名类。
extensions =“OpportunitySaveExtension”