Your Page Title
🔍

    Understanding apex:actionSupport Component in Visualforce

    The <apex:actionSupport> component is used to add AJAX behavior to other Visualforce components. It allows you to invoke an Apex controller method from UI events like onchange, onclick, onblur, etc., without refreshing the whole page.


    Syntax

    xmlCopyEdit<apex:inputText value="{!userName}">
        <apex:actionSupport event="onchange" action="{!updateUser}" rerender="outputPanel"/>
    </apex:inputText>
    

    Key Attributes

    AttributeDescription
    eventSpecifies the DOM event that triggers the action (e.g., onchange, onclick).
    actionApex method to be invoked.
    rerenderID of the component to be refreshed after action execution.
    statusOptional. Associates with an <apex:actionStatus> to show loading indicator.
    immediateOptional. If true, skips validations and updates.

    Example 1: Auto Update a Field on Change

    xmlCopyEdit<apex:page controller="SupportExample">
        <apex:form>
            <apex:inputText value="{!userName}">
                <apex:actionSupport event="onchange" action="{!updateGreeting}" rerender="greetingPanel"/>
            </apex:inputText>
            
            <apex:outputPanel id="greetingPanel">
                <h3>{!greetingMessage}</h3>
            </apex:outputPanel>
        </apex:form>
    </apex:page>
    

    Apex Controller:

    apexCopyEditpublic class SupportExample {
        public String userName { get; set; }
        public String greetingMessage { get; set; }
    
        public void updateGreeting() {
            greetingMessage = 'Hello, ' + userName + '!';
        }
    }
    

    Example 2: Button Click with AJAX

    xmlCopyEdit<apex:commandButton value="Submit">
        <apex:actionSupport event="onclick" action="{!submitForm}" rerender="resultPanel"/>
    </apex:commandButton>
    

    When to Use <apex:actionSupport>

    • When you want to avoid full-page reloads.
    • To enhance user experience with partial page updates.
    • For real-time input-based UI changes.

    Best Practices

    • Always specify the rerender attribute to update only necessary sections.
    • Combine with <apex:actionStatus> for better user feedback.
    • Use immediate="true" carefully—useful when skipping validations is needed.