As described in Metadata navigation overview (SharePoint Server 2010), metadata navigation includes the following user controls:
- Navigation hierarchies Use and expand the capabilities of list views to navigate hierarchies of folders, content types, choice fields, or managed metadata term sets. This allows users to use list views to filter on a metadata hierarchy just like navigating folders
- Key Filters This control appears below the site hierarchy control and can consist of several fields such as date, choice, content type, single and multi-value fields, currency, yes / no, and user fields. Any number of key filters can be applied in combination with a selected navigation hierarchy.
Navigation hierarchies and KeyFilter user controls registration and also rendering templates for KeyFilter control are defined in MetadataNavTree.ascx and MetadataNavKeyFilters.ascx files.
Our goal here to show possible ways on how KeyFilters control could be customized from the UI perspective.
Below is represented diagram on how KeyFilters control is rendered.
Depending on field type different rendering templates for composite field are applied as shown in table below.
Composite field rendering template name | Field type |
KeyFiltersCompositeFieldRangeCapable | for range capable field such as Choice |
KeyFiltersCompositeFieldUser | User |
KeyFiltersCompositeFieldDefault | default rendering template for key filters composite field |
But KeyFilter control has some limited functionality regarding customizing List Field Iterator and composite field templates, for example it is not possible to specify alternative templates for composite field templates.
One of the possible ways for making KeyFilters control UI customization more flexible is to extend it by allowing to specify custom templates for composite fields.
Project with custom Key Filters control implementation is located here.
Resulting page with custom KeyFilters control and custom rendering templates applied is shown below. In this example control field label and value in composite fields rendering templates are rendered in one row mode.