You are here: Architecture > Web Applications > Commerce Manager > Extending and Customizing Meta Field Controls

Extending and Customizing Meta Field Controls

Meta field controls are the controls that are rendered for custom fields. You can see examples of them when you edit entry or catalog nodes in the Catalog Management system.

For using custom meta fields (i.e. Year) with Search Filters in places like the "Shopping Options" sidebar control, it is advisable to use the "Float" type instead of "Decimal."

These fields are rendered using default, out-of-the box controls which are defined in the "Admin/Apps/Core/MetaData/Controls/" folder. For example, the string meta field is rendered using ShortStringControl.ascx. You may have more specific data entry constraints than the default controls provided. Let us say you want to add a custom status text field and you want to ensure that only possible, particular values can be entered in that field. You want to keep that field a simple string field (to improve performance) in the database but also do not want a data entry person to enter any invalid data. The simplest way to do this is to:

  1. Create a new custom user control (make a copy of ShortStringControl.ascx).
  2. Change the textbox to a dropdown control with hard coded values.
  3. Make the system auto pick-up your control instead of the default one. To do that, the name of the control must match the name and meta data type of the metafield you are mapping the control to. See the table and description below.

One example is that you may want to override all fields called "ImplementationStatus" with a meta data field type of ShortString. To do this:

  1. Name the control "ImplementationStatus.ShortStringControl.ascx".
  2. Create the meta field ImplementationStatus as a Short String in the Catalog portion of the Administration tab.
  3. Add the field to a meta class.
  4. Now, when you edit an entry in the catalog with this meta class (containing the ImplementationStatus field), the field will be represented with your custom control.

The engine allows you to override how the meta field is rendered for the following scopes (the position reflects the order engine validating the controls, if the control exists. It is used to render the field and evaluation stops):

Scope Control Name
Particular meta field name in particular meta class MetaClassName.MetaFieldName.TypeName.ascx
Particular meta field name for all meta classes MetaFieldName.TypeName.ascx
Particular meta class MetaClassName.TypeName.ascx



Version: EPiServer Commerce 1 R2 SP1 | Last updated: 2012-02-13 | Copyright © EPiServer AB | Send feedback to us