apex:dynamicComponent

This tag acts as a placeholder for your dynamic Apex components. It has one required parameter—componentValue—which accepts the name of an Apex method that returns a dynamic component.

The following Visualforce components do not have dynamic Apex representations:

  • <apex:attribute>
  • <apex:component>
  • <apex:componentBody>
  • <apex:composition>
  • <apex:define>
  • <apex:dynamicComponent>
  • <apex:include>
  • <apex:insert>
  • <apex:param>
  • <apex:variable>

Example 

1<apex:page controller="SimpleDynamicController">
2    <apex:dynamicComponent componentValue="{!dynamicDetail}" />
3</apex:page>
4
5/* Controller */
6public class SimpleDynamicController {
7
8    public Component.Apex.Detail getDynamicDetail() {
9        Component.Apex.Detail detail = new Component.Apex.Detail();
10        detail.expressions.subject = '{!acct.OwnerId}';
11        detail.relatedList = false;
12        detail.title = false;
13        return detail;
14    }
15
16    // Just return the first Account, for example purposes only
17    public Account acct {
18        get { return [SELECT Id, Name, OwnerId FROM Account LIMIT 1]; }
19    }
20}

Attributes 

Attribute NameAttribute TypeDescriptionRequired?API VersionAccess
componentValueUIComponentAccepts the name of an Apex method that returns a dynamic Visualforce component.Yes22.0
idStringAn identifier that allows the attribute to be referenced by other tags in the custom component definition. 22.0global
invokeAfterActionBooleanA Boolean value that, when true, specifies that componentValue’s Apex method is called after the page’s or submit’s action method is invoked. 31.0
renderedBooleanA Boolean value that specifies whether the component is rendered on the page. If not specified, this value defaults to true. 22.0

See Also