0

I would like to add a custom detail page button to the order page which is only executing Apex. Without displaying a new window.

For the moment, my custom button is linked to a visualforce page which is calling the order standard controller and my custom extension. After getting the order record in the constructor of my custom extension, a public method is called by the visual force page via a command button. Finally, I make a redirection to the previous order page.

My goal is to be able to get the order record in the constructor of a class, make an update on it, then redirect directly to the order page without displaying any new window.

Thanks for your help.

3
  • do you want to update a record with detail page button ? on same record or another record?
    – Ratan Paul
    Nov 30, 2015 at 14:39
  • Hi Ratan. In fact, I use the detail page buttons for multiple differents tasks. Some are just a basic update of the same record, some are for tasks more complexes than just a simple update. But I always use the same record. Nov 30, 2015 at 14:41
  • Look into the Ajax toolkit. You can do all of this via a custom JS button without the need for a middle VF page
    – Eric
    Dec 1, 2015 at 16:04

1 Answer 1

1

You can accomplish it this way:

Page:

<apex:page standardcontroller="object__c" extension="mycontroller" action="updateMe">
    Maybe show some message here if the update fails  
</apex:page>

Controller

public with sharing mycontroller() {
   public object__c myobj {get; set;}

   public mycontroller(ApexPages.STandardController ctr){
      myobj = ctr.getRecord();
   }

   public pageReference updateMe() {
     //Do the update/DML here

     PageReference pageRef = new PageREference(myUrlGoesHere);
     pageRef.setRedirect(true);
     return pageRef;
   }
}
2
  • Hi Sebastian. Thanks for your answer. How can I get the current record with this solution? Dec 1, 2015 at 8:21
  • I just edited my code. I did it from my iPad so please check for typos. :) Dec 1, 2015 at 15:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .