salesforce - 如何在 VisualForce 页面中实现 "Save & New"功能

标签 salesforce apex-code visualforce force.com

我知道这是保存记录的方法

<apex:commandButton action="{!save}" value="Save"/>

现在我想要一个按钮来保存当前记录并重置表单以输入另一条记录。

类似这样的事情...

<apex:commandButton action="{!SaveAndNew}" value="Save & New"/>

最佳答案

新记录页面的 URL 是 {org URL}/{3 letter object prefix}/e?"。

您可以按如下方式定义保存方法,其中 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);
  }

要将 Controller 用作扩展,请修改其构造函数以将 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>

请注意,类名中不需要 Extension,我这样做只是为了明智。您无需修改​​页面上的任何其他内容即可使用此方法。

关于salesforce - 如何在 VisualForce 页面中实现 "Save & New"功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921414/

相关文章:

angularjs - 带有 AngularJS 标签的 VisualForce 页面

iphone - iPhone 中的 Force.com Enterprise WSDL

eclipse - 无法安装 Eclipse 的 Force.com 插件。 md5 不匹配

excel - 在 VF 页面中导出 Excel - 使用动态图像 URL 时图像未显示

php - 销售人员错误 : Element {}item invalid at this location

javascript - 从 apex Controller 类返回数组并在 Salesforce 中的 javascript 中使用

salesforce - 无法将堆对象传递给 future 方法的解决方法是什么?

salesforce - 视觉力和 VPN

salesforce - userinfo.getuseremail() 在 salesforce 中返回 noreply@salesforce.com

html - 渲染为 pdf 时出现 Visualforce 样式问题