2011-07-21 24 views
6

var objWeb = properties.Feature.Parent como SPWeb;sharepoint: Agregar una columna de sitio existente al tipo de contenido existente Programaticamente

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

Puedo usar este código en la activación característica para añadir columna de sitio "palabra clave" para el tipo de contenido de sitio "página wiki" mi problema es la "palabra clave" añadir en "página wiki", pero no de la columna de sitio el vigente es añadir nueva columna de sitio. ¿Hay algún problema en mi código?

otra cosa que este código funciona bien en mi servidor MOSS cuando despliego en Office365 este problema he encontrado

+0

Tengo una solución con código similar y funciona en SP2010. Sin embargo, es una solución 'agrícola'. Office365 solo acepta soluciones de espacio aislado. –

+0

¿Está utilizando web.AvailableContentTypes o web.ContentTypes para crear este objeto? –

Respuesta

12

Debe probar el código de abajo:

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

espero que alguien está siendo ayudado de mi código :)

Cuestiones relacionadas