2011-07-21 7 views
6

var objWeb = properties.Feature.Parent SPWeb olarak;sharepoınt: Mevcut içerik türüne mevcut site sütunu ekleme Programatically

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

ben site içerik türüne site sütunu "KeyWord" eklemek özelliği aktivasyonu bu kodu kullanın "Wiki Sayfası" benim sorunum eklemek var mevcut site sütundan "wiki sayfası" eklemek değil "anahtar kelime" dir yeni site sütunu. kodumda sorun var mı

i

bulundu bu soruna office365 üzerinde dağıtırken bu kod benim YOSUN sunucuda çalışıyor başka bir şey Aşağıdaki kodu denemelisiniz
+0

Benzer kod ile bir çözüm var ve SP2010'da çalışıyor. Ancak, bir 'çiftlik' çözümdür. Office365 yalnızca korumalı çözümleri kabul eder. –

+0

Bu nesneyi oluşturmak için web.AvailableContentTypes veya web.ContentTypes kullanıyor musunuz? –

cevap

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

Birinin gelen yardım ediliyor umuyorum code :)