Fired event itemupdating which wasn
When we add either the site column or content type to a list the managed metadata field works and shows up in the search refinement panel (at least it did in my testing).
This is due to the fact that Share Point automatically wires some extra bits (shown below) when the field is added.
The Taxonomy Field Added feature is not activated on sites created using the blank site template, or sites created using custom site definitions so a good idea is to include a feature activation dependency that ensures this is activated before we attempt to provision our field.
This is easy to do using the Visual Studio 2010 feature editor – just expand the Feature Activation Dependencies section at the bottom and add the following information: Title: Taxonomy Field Added Feature ID: 73ef14b1-13a9-416b-a9b5-ececa2b0604c Description: Register taxonomy site wide field added event receiver Assuming the feature that contains the site columns is site scoped this feature will activate automatically if it isn’t already activated.
This should be done as a separate web scoped feature.
All going well we will now have a list that contains a correctly functioning managed metadata field which automatically gets extracted during search processing and displayed in the search refinement panel as shown below.
These are the Taxonomy Item Synchronous Added Event Receiver for the Item Adding event and the Taxonomy Item Updating Event Receiver for the Item Updating event.
section to the field and hardcode the various Id’s that define a term set (required if you are using a sandboxed solution), or configure these in code.
I’m taking the code approach here as it is the only way to ensure the field will work across multiple environments.
The last issue can be easily avoided by adding a feature dependency to ensure the required feature is activated before we deploy our custom site column.
With this information we can use the following steps to deploy managed metadata fields that avoid these issues.
I find the easiest way to ensure all the columns are added to the list definition is to add them to a content type first.