Mobile 如何覆盖自定义页面上的“保存”按钮以进行更改?

Mobile 如何覆盖自定义页面上的“保存”按钮以进行更改?,mobile,salesforce,apex-code,visualforce,Mobile,Salesforce,Apex Code,Visualforce,当我在commandButton中使用标准保存操作时,它每次都会转到默认页面 但是当我点击保存按钮时,我想切换到一个自定义页面。如何 我试过很多这样的事情 public Pagereference goHome(){ Pagereference to = Apexpages.currentPage(); to.setRedirect(true); return to; } 或 publicpagereference goHome(){ Pagereference to=new Pa

当我在commandButton中使用标准保存操作时,它每次都会转到默认页面

但是当我点击保存按钮时,我想切换到一个自定义页面。如何

我试过很多这样的事情

public Pagereference goHome(){

Pagereference to = Apexpages.currentPage();
     to.setRedirect(true);
return to;
}

publicpagereference goHome(){
Pagereference to=new Pagereference('/apex/mypage?user=guest');返回到;
}

它应该非常简单!检查此示例对您的作用(您需要通过在URL中添加
?id=006…
将页面与有效的Opportunity关联)



{!Opportunity.Name}{!Opportunity.AccountId}
标准的
save()
方法可以使用
ApexPages.StandardController
从扩展调用。下面是一个简单的例子,说明如何实现这一目标:

页首:

<apex:page standardController="Account" extensions="AccountExtension">
    <apex:form >

        <apex:pageMessages />

        <apex:pageBlock title="Account">
            <apex:pageBlockSection title="Account Details">
                <apex:inputField value="{!account.Name}" />
            </apex:pageBlockSection>

            <apex:pageBlockButtons >
                <apex:commandButton action="{!Save}" value="save" />
                <apex:commandButton action="{!Cancel}" value="cancel" />
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>

</apex:page>

不,这在我的环境下不起作用。我在一个空的visualforce页面中尝试了你的代码。它正在运行。我在我的visualforce页面上复制了它,但它不起作用。页面更改为url=DA#HE#/apex/mobilepage#/apex/mobilepage视为默认页面。在我的页面上,我也在使用Jquery Mobile。我想你必须更具体一些。你用过我的页面和控制器吗?你有什么错误吗?它是否保留在您的编辑页面上?像普通保存方法一样重定向回记录的“详细视图”页面?您可以尝试打开调试日志并检查输出吗?我从未使用过jQuery Mobile,但我怀疑它是否能吞下页面重定向。。。您可以打开firebug或任何其他网络嗅探器来检查请求吗?
public class redirectTestCtrl{
    public Opportunity o {get;set;}

    public redirectTestCtrl(ApexPages.StandardController ctrl){
        o = (Opportunity)ctrl.getRecord();
    }

    public PageReference save(){
        upsert o;
        //return new PageReference('/home/home.jsp'); // go to home page
        return new PageReference('/' + o.AccountId);  // or to the related Account's page
    }
}
<apex:page standardController="Opportunity" extensions="redirectTestCtrl">
    <apex:outputField value="{!o.AccountId}" />
    <apex:form>
        <apex:inputField value="{!o.Name}" />
        <apex:commandButton value="Save" action="{!save}" />
    </apex:form>
    <span style="visibility:hidden">{!Opportunity.Name} {!Opportunity.AccountId}</span>
</apex:page>
<apex:page standardController="Account" extensions="AccountExtension">
    <apex:form >

        <apex:pageMessages />

        <apex:pageBlock title="Account">
            <apex:pageBlockSection title="Account Details">
                <apex:inputField value="{!account.Name}" />
            </apex:pageBlockSection>

            <apex:pageBlockButtons >
                <apex:commandButton action="{!Save}" value="save" />
                <apex:commandButton action="{!Cancel}" value="cancel" />
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>

</apex:page>
public class AccountExtension {

    ApexPages.StandardController stdController;

    public AccountExtension(ApexPages.StandardController controller) {
        stdController = controller;
    }

    public PageReference save() {
        stdController.save(); // calling standard save() method
        return null; // return 'null' to stay on same page
    }
}