- Business Foundation
- Exporting and importing meta models
- Extending meta models
- Filtering and sorting
- Generating typed business foundation classes
- SQL Meta Model
- Working with entity objects
- Working with SQL Records
- Business Meta Model
- Bundles and packages
- Catalog content provider
- Product variants
- Related entries
- Using a CMS-style rendering template
- Working with the Catalog as IContent
- Assets and media
- Meta Data Plus
- Scheduled Jobs
- Warehouses and inventories
This content is archived. See latest version here
Last updated: May 28 2015
Working with meta field controls
Meta field controls are rendered for custom fields. You can see examples of them when you edit an entry or catalog nodes in the Catalog Management subsystem (legacy). This document explains how to extend and customize meta field controls.
How it works
Meta 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. For example you want to add a custom status text field, and you want to ensure that only specific possible 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 users entering data to add invalid data.
The simplest way to do this is to:
- Create a new custom user control (make a copy of ShortStringControl.ascx).
- Change the textbox to a drop-down control with hard coded values.
- 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 meta field you are mapping the control to. See table and description below.
Another example is when you want to override all fields called "ImplementationStatus" with a meta data field type of ShortString.
This can be done as follows:
- Name the control "ImplementationStatus.ShortStringControl.ascx".
- Create the meta field ImplementationStatus as a Short String in the Catalog portion of the Administration tab.
- Add the field to a meta class.
- 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.
When using custom meta fields (for instance "year") with search filters in places like the "Shopping Options" sidebar control, it is recommended to use the "Float" type instead of "Decimal."
The engine allows you to override how the meta field is rendered for the scopes listed below. The position reflects the order engine validating the controls, if the control exists. This is used to render the field and evaluation stops.
|Specific meta field name in particular meta class||MetaClassName.MetaFieldName.TypeName.ascx|
|Specific meta field name for all meta classes||MetaFieldName.TypeName.ascx|
|Specific meta class||MetaClassName.TypeName.ascx|