salesforce
  1. salesforce-apex-dynamiccomponent

apex:dynamicComponent

The apex:dynamicComponent tag in Salesforce Visualforce allows for dynamic rendering of components based on runtime data. This tag can be used to render different components based on user selection or other runtime data.

Syntax

The basic syntax for using apex:dynamicComponent tag is as follows:

<apex:dynamicComponent componentValue="{!dynamicComponent}"/>

Here, dynamicComponent is a controller variable or expression that represents the component that needs to be rendered at runtime.

Example

Consider the following example, where a selectList component is used to allow the user to select a component, which is then dynamically rendered using the apex:dynamicComponent tag:

<apex:page controller="DynamicComponentController">
  <apex:form>
    <apex:selectList value="{!selectedComponent}" size="1">
      <apex:selectOptions value="{!componentOptions}"/>
      <apex:actionSupport event="onchange" reRender="componentContainer"/>
    </apex:selectList>
    <apex:outputPanel id="componentContainer">
      <apex:dynamicComponent componentValue="{!dynamicComponent}"/>
    </apex:outputPanel>
  </apex:form>
</apex:page>

In this example, whenever the user selects a different component from the selectList, an actionSupport event is triggered which re-renders the componentContainer. The componentValue attribute of the apex:dynamicComponent tag receives the value of dynamicComponent, which is controlled by the selectedComponent variable in the controller.

Output

The output of the apex:dynamicComponent tag will depend on the component that is dynamically rendered. It may include input fields, buttons, data tables, or any other Visualforce component.

Explanation

The apex:dynamicComponent tag is used to dynamically render different components based on user selection or other runtime data. In the example above, a select list determines which component should be dynamically rendered, and the componentValue attribute of the apex:dynamicComponent tag receives the value of dynamicComponent from the controller.

Use

The apex:dynamicComponent tag is useful in scenarios where you need dynamic rendering of different components based on user input or other runtime data. It can help reduce code duplication and simplify your Visualforce pages.

Important Points

  • The apex:dynamicComponent tag can be used to render any Visualforce component dynamically.
  • The componentValue attribute of the tag should be set to the actual component object, not the component's name or ID.
  • The apex:dynamicComponent tag should always be enclosed within an apex:outputPanel tag, which provides a container to render the dynamic component.

Summary

The apex:dynamicComponent tag in Salesforce Visualforce allows for dynamic rendering of components based on runtime data. It is useful for scenarios where you need to render different components based on user input or other runtime data. The tag should be used with caution and always enclosed within an apex:outputPanel tag to provide a container for the rendered component.

Published on: