2011-02-10 3 views
3

SharePoint 2010 빌드에는 키워드에 대한 관리 된 메타 데이터 필드가 포함 된 사용자 지정 콘텐츠 형식이 있습니다.SharePoint 2010 EditModePanel에서 올바른 분류법 컨트롤을 표시하려면 어떻게합니까?

필자가 목록에있는 항목을 편집하면 정확한 분류 체계 선택기 컨트롤이 나타나고 용어가 용어 저장소에서 검색되므로 필드가 제대로 배포 된 것으로 보입니다.

그러나; Item의 PageLayout에 EditModePanel을 사용하여 항목의 현장 편집을 허용하고 정확한 Taxonomy Picker 컨트롤을 표시 할 수 없습니다.

페이지 레이아웃에 TaxonomyWebTaggingControl을 추가하고 SSPId 등을 하드 코드하면 작동합니다.

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

그러나 클라이언트가 사이트를 배포 할 때 용어 저장소가 만들어 지므로 값을 하드 코딩 할 수 없습니다.

콘텐츠 유형을 만들 때 이름을 사용하여 필드를 올바른 Term Store/Set에 바인딩하는 이벤트 수신기가 있지만 EditModePanel에서 필드를 가져 와서 설정하는 방법을 이해하지 못합니다. 같은

내가 정말 원하는됩니다 :

<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); 
     } 

답변

3

당신은이에 대한 TaxonomyFieldControl를 사용한다 : 내가 수정 한

<%@ Register Tagprefix="Taxonomy" Namespace="Microsoft.SharePoint.Taxonomy" Assembly="Microsoft.SharePoint.Taxonomy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<Taxonomy:TaxonomyFieldControl FieldName="My Field Name" runat="server" id="myField"/>

+0

내 페이지 레이아웃이 TaxonomyFieldControl를 사용하는

내 이벤트 수신기는 다음과 같습니다 비활성화되었거나 회색으로 표시되고 태그 아이콘을 클릭해도 아무 효과가 없습니까? –

+0

필드가 MMS SA에 올바르게 연결되어 있습니까? –

+0

- 원래 게시물에 내 이벤트 수신자 코드를 추가했습니다. 디버거에서이 단계를 밟았지만 오류는 발생하지 않습니다. –

관련 문제