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);
}
내 페이지 레이아웃이 TaxonomyFieldControl를 사용하는
내 이벤트 수신기는 다음과 같습니다 비활성화되었거나 회색으로 표시되고 태그 아이콘을 클릭해도 아무 효과가 없습니까? –
필드가 MMS SA에 올바르게 연결되어 있습니까? –
- 원래 게시물에 내 이벤트 수신자 코드를 추가했습니다. 디버거에서이 단계를 밟았지만 오류는 발생하지 않습니다. –