Visualforce pages with a Salesforce API version equal to or greater than 20.0 support record types. Record types let you offer different business processes, picklist
values, and page layouts to different users.
After creating a record type in Setup, enabling support for it
in Visualforce requires no additional actions on your part. Visualforce pages for objects that use record types respect your settings. Record
type field is named RecordTypeId.
Your record type definitions affect
the rendering of
<apex:inputField> tags in the following ways:
- If the <apex:inputField> tag refers to a picklist field that's filtered by a record type:
- The rendered <apex:inputField> component only displays options compatible with that record type.
- If the <apex:inputField> component is bound to a dependent picklist with a rendered and editable
controlling field, only options compatible with both the record type
and the controlling field value display.
- If the <apex:inputField> tag refers to a record type field:
- If the user can change the field’s record type, or select
a record type for the new field, the <apex:inputField> component renders as a drop-down list.
Otherwise, it renders as read-only text.
- It's the developer's responsibility to either refresh the page
or rerender filtered picklists when the list changes.
In addition, the
<apex:outputField> tag's support for record types is identical to a read-only implementation
of the
<apex:inputField> behavior.
When overriding the
New button with a Visualforce page, you also have
the option to skip the record type selection page. If selected, any new
records you create won't be forwarded to the record type selection page,
since it assumes that your Visualforce page is already
handling record types.