2012-11-15 85 views
0

當我在commandButton中使用標準保存操作時,它每次都會進入默認頁面。如何覆蓋保存按鈕以更改自定義頁面?

但我想cha到一個自定義頁面,當我點擊保存按鈕..如何?

我嘗試了很多這樣的事情......

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}" /> 

回答

0

它應該是很簡單的!檢查此示例如何適用於您(您需要通過在URL中添加?id=006...將該頁面關聯到有效的商機)。

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> 
+0

不,這不是我的環境中工作。我在一個空白的visualforce頁面中嘗試了你的代碼。它正在運行。我將它複製到我的visualforce頁面,但它不工作。該頁面已更改爲網址https://XX.XX.visual.force.com/apex/mobilepage?user=DA_HE#/ apex/mobilepage。 #/ apex/mobilepage seeams是默認頁面。在我的網頁上也使用Jquery Mobile。 – user987144

+0

我認爲你必須更具體。你有沒有使用我的網頁和控制器?你有什麼錯誤嗎?它是否保留在您的編輯頁面上?像正常的保存方法一樣重定向到記錄的「詳細視圖」頁面?你能嘗試打開調試日誌並檢查輸出嗎?我從來沒有使用jQuery Mobile,但我懷疑它可以吞噬頁面重定向...你可能會打開firebug或任何其他網絡嗅探器來檢查請求? – eyescream

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 
    } 
}