Salesforce 实现保存和新建按钮不工作
我按照此链接在页面上创建保存和新功能 根据这一点,我做了如下工作 1.创建一个apex类Opportunity并实施扩展方法Salesforce 实现保存和新建按钮不工作,salesforce,extension-methods,visualforce,Salesforce,Extension Methods,Visualforce,我按照此链接在页面上创建保存和新功能 根据这一点,我做了如下工作 1.创建一个apex类Opportunity并实施扩展方法 public with sharing class Opportunity { ApexPages.standardController m_sc = null; public Opportunity(ApexPages.standardController sc) { m_sc = sc; } public Pagereference
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类扩展不应与对象名称相同 顶点类名
机会控制器
顶点页
机会年龄
代码应该是
我认为可能类名等于对象标准名会出错,正如Joseph指出的那样,页面正在尝试访问标准控制器OpportunityStandardController.doSaveAndNew()中的方法因为扩展和标准控制器都被称为同一个东西,而且它只是在错误的类中查找,所以找不到它 您可能只需要将控制器扩展名重命名为其他名称。我通常在类名的末尾加上“Extension”,这样我就知道它的用途了。例如,可能类似于“OpportunitySaveExtension”。然后更新visualforce页面,在“Extensions”属性中引用重命名的类 extensions=“Opportunity SaveExtension”