Question

J'utilise une solution de sandboxed à partir d'un fournisseur de 3ème partie contenant des colonnes de sites et un type de contenu de site.
Je veux ajouter ce type de contenu à ma définition de la bibliothèque de documents à CAML.
Mais lorsque j'ajoute une référence à ce type de contenu dans mon schema.xml comme ceci:

<List ... EnableContentTypes="TRUE">
 <MetaData>
  <ContentTypes>
   <ContentTypeRef ID="0x0101002EFF4F6709F446E5AD064DC20BBE6855" />
   <!--contenttypeid of content type from sandboxed solution-->
   <ContentTypeRef ID="0x0101" />
   <!--contenttypeid of Document-->
   ...
  </ContentTypes>
  ...
 </MetaData>
</List>

Le type de contenu n'est pas ajouté à ma bibliothèque lorsque je le crée une instance. (J'ai créé cette bibliothèque de documents après que la solution de sandbox a été activée bien sûr)
Pire encore en fait, je reçois le message d'erreur suivant:

Un nom de contenu duplicate de contenu "document" a été trouvé.

J'ai des raisons de croire que cela est dû au fait que SP ne peut pas trouver le type de contenu en sandbox et pense que c'est un type de contenu de votre enfant. Il ajoute donc le type de contenu de document deux fois à ma liste avec ce message d'erreur.

Je ne comprends tout simplement pas pourquoi il n'ajoute pas le type de contenu de la solution Sandboxed?
Après tout, je peux voir ce type de contenu sur le site (collection) Types de contenu Galerie et je suis capable d'ajouter le type de contenu via l'interface utilisateur à la même bibliothèque de documents sans référence à ce type de contenu "Sandboxed".

Mise à jour: J'ai essayé de ne rien ajouter que le type de contenu des fournisseurs tiers à la définition de la bibliothèque de documents et que seulement 1 "Document" Type de contenu est ajouté.
En fait, il crée un type de contenu de liste appelé "document" qui hérite du type de contenu du site du fournisseur de 3ème partie.
Ainsi, les informations de type de contenu de la liste suivantes sont affichées:

  • Nom: Document
  • Description: Créez un nouveau document
  • Parent: {Type de contenu du site du fournisseur du fournisseur de 3ème partie}

    et les colonnes de site du type de contenu du site ont été copiées sur.
    Malheureusement, il ne met pas à jour le nom du type de contenu de la liste.

    Veuillez partager des indices que vous pourriez avoir ...

Était-ce utile?

La solution

It seems that list has its own internal content type or at the very least, its own set of fields, which is creating the problem. Try investigating the list with the SharePoint Manager 2007/2010.

The alternative approach could be to use ContentTypeBinding element to bind multiple ContentTypes.

<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B401" 
      ListUrl="MyDocLibrary"  
/> 
<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B402" 
      ListUrl="MyDocLibrary" 
/> 
<ContentTypeBinding 
      ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B403" 
      ListUrl="MyDocLibrary" 
 /> 

ContentTypeBinding elements that are responsible for linking the multiple content types share a common parent i.e. 0x0101, which means ancestor of this type is the base Document content type.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top