0

commandButton で標準の保存アクションを使用すると、毎回デフォルト ページに移動します。

しかし、保存ボタンをクリックしたときにカスタムページに変更したい..どのように??

こんな感じで色々試しましたが…

public Pagereference goHome(){

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

また

public Pagereference goHome(){

Pagereference to = new Pagereference('/apex/mypage?user=guest');    return to;
}


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

2 に答える 2

0

とてもシンプルなはずです!この例がどのように機能するかを確認してください ( ?id=006...URL を追加して、ページを有効な商談に関連付ける必要があります)。

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>
于 2012-11-15T10:29:09.453 に答える
0

標準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>

拡張クラス:

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
    }
}
于 2012-12-07T05:24:27.757 に答える