我知道如何返回 PageReference 来编辑和查看 sObject:

PageReference ref =  new ApexPages.StandardController(bnk).edit();

但是 StandardController 类没有像 create 这样的任何方法。

如何返回页面以创建 sObject。

我也知道这样的方法:
PageReference ref =  new PageReference('/a00/e');

但是sObject有很多lookup字段,这个方法不能取出引用的lookup字段,只能创建一个独立的sObject。

那么如何返回创建页面并取出引用查找字段呢?

最佳答案

我在尝试添加 Save and New 按钮时遇到了同样的问题。 StandardController 没有返回 PageReference 的 new() 方法似乎很奇怪。

如果您的 Apex 类要部署到另一个 Salesforce 组织(例如添加到出站更改集,放入托管或非托管包,或使用 Eclipse 部署),我会避免对自定义对象键前缀进行硬编码,因为这可能会改变组织之间。相反,使用DescribeSObjectResult 来获取KeyPrefix。

public PageReference customObjectPageReference() {
    Schema.DescribeSObjectResult R = YourCustomObject__c.SObjectType.getDescribe();
    // Add /o to end of URL to view recent
    return new PageReference('/' + R.getKeyPrefix() + '/e');
}

10-07 14:56