Calling apex method from a custom button using javascript

Sometimes we need to call a method of an apex class, on click of a custom button. Let’s take an example, how we call an apex method, on click of a custom button.
Step 1:
Lets first create the Apex class.

global class MyClass {
    webservice static String myMethod(String studentId){
       return 'Test';
    }
}

Note:

  • Class needs to be a Global class.
  • And the method you intend to call from the javascript must be a Webservice Method.

Step 2:
Now to setup the custom Button.
Goto –> Setup –> Object –> Buttons, links and Actions section –> Click New Button or Link

1

  • Enter the Name of the button.
  • Behaviour : Execute Javascript.
  • Content source : On-Click Javascript.

In the code for button copy the following line of codes:

{!REQUIRESCRIPT("/soap/ajax/14.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/14.0/apex.js")}
 
try{ 
  var studentId = '{!Student__c.Id}'
  var result = sforce.apex.execute("MyClass", "myMethod",{studentId : studentId}); 
  alert(result);
} 
catch(ex) {
  alert(txt); 
}

2

Salesforce: Use Tab in Visualforce Page

Visualforce Page:

<apex:page doctype="html-5.0" standardcontroller="account" tabstyle="account">
    <apex:pageblock title="{!account.Name}">
        <apex:tabpanel id="tabpanel">
         
            <apex:tab label="Account Details" rerender="tabpanel" switchtype="ajax">
            <apex:detail relatedlist="false"></apex:detail>
            </apex:tab>
             
            <apex:tab label="Contacts" rerender="tabpanel" switchtype="ajax">
            <apex:relatedlist list="Contacts"></apex:relatedlist>
            </apex:tab>
             
            <apex:tab label="Opportunities" rerender="tabpanel" switchtype="ajax">
            <apex:relatedlist list="Opportunities"></apex:relatedlist>
            </apex:tab>
             
            <apex:tab label="Cases" rerender="tabpanel" switchtype="ajax">
             <apex:relatedlist list="Cases"></apex:relatedlist>
            </apex:tab>
             
        </apex:tabpanel>
    </apex:pageblock>
</apex:page>

Note: Please pass account id in url e.g.
https://salesforce.com/apex/TabInVisualForcePage?id=0019000001DEV5z

Output:

index