2011-07-21 80 views
6

var objWeb = properties.Feature.Parent as SPWeb;sharepoint:將現有網站列添加到現有內容類型編程方式

SPContentType contentType = objWeb.ContentTypes["Wiki Page"]; 
if (!contentType.Fields.ContainsField("Keywords")) 
{ 
    SPField field = objWeb.Fields["Keywords"]; 
    SPFieldLink fieldLink = new SPFieldLink(field); 
    contentType.FieldLinks.Add(fieldLink); 
    contentType.Update(true); 
} 

我使用這個代碼在功能激活網站欄「關鍵字」添加到網站內容類型「Wiki頁面」我的問題是「關鍵詞」,從現有的網站列是添加添加在「維基頁面」,而不是新網站專欄。我的代碼有問題嗎?

一兩件事,當我office365這個問題,我發現

部署在此代碼的工作我的MOSS服務器上的微細
+0

我有一個類似的代碼解決方案,它在SP2010中工作。但是,這是一個「農場」解決方案。 Office365只接受沙盒解決方案。 –

+0

您是使用web.AvailableContentTypes還是web.ContentTypes創建此對象? –

回答

12

你應該試試下面的代碼:

if (objWeb.IsRootWeb) 
{ 
    SPContentType contentType = objWeb.ContentTypes["Wiki Page"]; 
    if (!contentType.Fields.ContainsField("Keywords")) 
    { 
     SPField field = objWeb.Fields["Keywords"]; 
     SPFieldLink fieldLink = new SPFieldLink(field); 
     contentType.FieldLinks.Add(fieldLink); 
     contentType.Update(true); 
    } 
} 
else 
{ 
    SPContentType contentTyperoot = site.RootWeb.ContentTypes["Wiki Page"]; 
    if (!contentTyperoot.Fields.ContainsField("Keywords")) 
    { 
    SPContentType contentType = site.RootWeb.ContentTypes["Wiki Page"]; 
    if (!contentType.Fields.ContainsField("Keywords")) 
    { 
     SPField field = site.RootWeb.Fields["Keywords"]; 
     SPFieldLink fieldLink = new SPFieldLink(field); 
     contentType.FieldLinks.Add(fieldLink); 
     contentType.Update(true); 
    } 
    } 
} 

我希望有人正在從幫助我代碼:)

相關問題