2011-07-21 14 views
6

var objWeb = properties.Feature.Parent jako SPWeb;sharepoint: Dodaj istniejącą kolumnę witryny do istniejącego typu zawartości Programowo

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

Używam tego kodu do aktywacji funkcji, aby dodać kolumny site „słów kluczowych” do typu zawartości witryny „Wiki Page” mój problem jest „słowo kluczowe” dodać „strony wiki”, ale nie z istniejącej kolumny miejscu To dodać nowa kolumna witryny. czy jest jakiś problem w moim kodzie?

jeszcze jedno ten kod działa poprawnie na moim serwerze MOSS gdy wdrożyć na Office 365 tego problemu znalazłem

+0

Mam rozwiązanie z podobnym kodem i działa w SP2010. Jest to jednak rozwiązanie "rolnicze". Office365 akceptuje tylko rozwiązania piaskownicy. –

+0

Czy używasz Web.AvailableContentTypes lub web.ContentTypes do utworzenia tego obiektu? –

Odpowiedz

12

Należy wypróbować poniższy kod:

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

Mam nadzieję, że ktoś jest pomógł z moim kod :)

Powiązane problemy