salesforce
  1. salesforce-apex-actionregion-component

apex:actionRegion Component

The apex:actionRegion component is a powerful component in Visualforce that allows you to specify a section of your page that is associated with a specific action. When the associated action is triggered, only the portion of the page inside the apex:actionRegion component is updated.

Syntax

The syntax for using the apex:actionRegion component in Visualforce is as follows:

<apex:actionRegion>
    <!-- Contents of the action region -->
</apex:actionRegion>

Example

Consider the following Visualforce page that displays a list of accounts and allows users to edit them:

<apex:page controller="AccountController">
    <apex:form>
        <apex:pageBlock title="Account List">
            <apex:pageBlockTable value="{!accounts}" var="account">
                <apex:column value="{!account.Name}" />
                <apex:column headerValue="Actions">
                    <apex:commandButton value="Edit" action="{!editAccount}" rerender="accountDetails">
                        <apex:param name="accountId" value="{!account.Id}" assignTo="{!selectedAccountId}" />
                    </apex:commandButton>
                </apex:column>
            </apex:pageBlockTable>
        </apex:pageBlock>
        <apex:outputPanel id="accountDetails">
            <apex:actionRegion>
                <apex:outputPanel rendered="{!selectedAccountId != null}">
                    <apex:pageBlock title="Account Details">
                        <apex:inputField value="{!selectedAccount.Name}" />
                        <apex:inputField value="{!selectedAccount.Phone}" />
                        <apex:inputField value="{!selectedAccount.BillingCountry}" />
                        <apex:commandButton value="Save" action="{!saveAccount}" />
                    </apex:pageBlock>
                </apex:outputPanel>
            </apex:actionRegion>
        </apex:outputPanel>
    </apex:form>
</apex:page>

In this example, the apex:actionRegion component is used to specify a section of the page that is associated with the saveAccount action. When the Save button is clicked, only the portion of the page inside the apex:actionRegion component (i.e. the Account Details section) is updated.

Explanation

The apex:actionRegion component is used to define a section of the page that is associated with a specific action. Only the portion of the page inside this component is updated when the associated action is triggered, thus reducing unnecessary updates to the page.

In this example, the apex:actionRegion component is used to specify the area of the page that should be updated when the user clicks the Save button. If this component was not used, the entire page would be refreshed, including the Account List section, which is not necessary.

Use

The apex:actionRegion component is particularly useful when you have a page with multiple sections that display different types of information. By using this component, you can specify which sections should be updated when a specific action is triggered, thereby optimizing the performance of your page.

Important Points

  • Be careful when using the apex:actionRegion component in conjunction with other components that may trigger a partial page refresh. If you have multiple components that refresh different parts of the page, you may end up with unexpected results.
  • Avoid nesting apex:actionRegion components, as this may result in unpredictable behavior.

Summary

The apex:actionRegion component in Visualforce allows you to specify a section of your page that is associated with a specific action. Only the portion of the page inside this component is updated when the associated action is triggered, thereby reducing unnecessary updates to the page and optimizing its performance. When using this component, be careful not to nest it or use it in conjunction with other components that may trigger a partial page refresh.

Published on: