Sharepoint 2010 如何在SharePoint 2010 EditModePanel中显示正确的分类法控件?

Sharepoint 2010 如何在SharePoint 2010 EditModePanel中显示正确的分类法控件?,sharepoint-2010,keyword,taxonomy,page-layout,Sharepoint 2010,Keyword,Taxonomy,Page Layout,我们在SharePoint 2010构建中有一个自定义内容类型,其中包括一个用于关键字的托管元数据字段 该字段似乎已部署为OK,因为如果我在它所在的列表中编辑一个项,我将获得正确的分类选择器控件,并从术语库中检索我的术语 但是,;我们在页面布局上为项目使用EditModePanel,以允许对项目进行站点内编辑,但我无法显示正确的分类选择器控件 如果我在页面布局中添加一个TaxonomyWebtagingControl,并对SSPId等进行硬编码,那么它就可以工作 <TaxonomyCont

我们在SharePoint 2010构建中有一个自定义内容类型,其中包括一个用于关键字的托管元数据字段

该字段似乎已部署为OK,因为如果我在它所在的列表中编辑一个项,我将获得正确的分类选择器控件,并从术语库中检索我的术语

但是,;我们在页面布局上为项目使用EditModePanel,以允许对项目进行站点内编辑,但我无法显示正确的分类选择器控件

如果我在页面布局中添加一个TaxonomyWebtagingControl,并对SSPId等进行硬编码,那么它就可以工作

<TaxonomyControls:TaxonomyWebTaggingControl runat="server" SSPId="234234-234234-34341-343" TermSetId="234234-23342-34234-234-234"/>

您应该为此使用TaxonomyFieldControl:


我已经修改了我的页面布局以使用TaxonomyFieldControl,但它似乎已被禁用/变灰,单击标记图标没有任何作用?它似乎是-我已在原始帖子中添加了事件接收器的代码。我已经在调试器中完成了这一步,并且没有出错。我现在已经让它工作了-我删除了我的站点并重新创建了它,这显然刷新了库列。唯一的障碍是MM列不会自动添加到库列中,我必须手动添加它。
<TaxonomyControls:TaxonomyWebTaggingControl runat="server" TermStore="My term store name" TermSet="Keywords"/>
 try
        {
            SPSite site = ((SPWeb)properties.Feature.Parent).Site as SPSite;

            Guid fieldId = new Guid("3211B052-5332-424C-A066-BBE21AEAB878");
            if (site.RootWeb.Fields.Contains(fieldId))
            {
                TaxonomySession session = new TaxonomySession(site);

                if (session.TermStores.Count != 0)
                {
                    var termStore = session.TermStores["Managed Metadata Service"];
                    var group = termStore.Groups.GetByName("My Client");
                    var termSet = group.TermSets["Keywords"];

                    TaxonomyField field = site.RootWeb.Fields[fieldId] as TaxonomyField;

                    field.SspId = termSet.TermStore.Id;
                    field.TermSetId = termSet.Id;
                    field.AnchorId = Guid.Empty;
                    field.AllowMultipleValues = true;
                    field.TextField = fieldId;
                    field.TextField = new Guid("{574C5BCE-74E8-40C8-BE90-C9338135D491}");
                    field.Update();
                    Log.Logger.LogEvent("ContentType Activation", "Updated keywords field with MMS details");
                }
            }
        }
        catch (Exception ex)
        {
            Log.Logger.LogException(ex, "Content Type Activation", ex.Message);
        }