Question

J'ai une collection de sites SharePoint 'http://microsoft.com/' avec quelques sites Web enfants, par exemple :http://microsoft.com/news/

Je souhaite créer un champ de recherche dans la liste « Pages ».Sur chaque champ de recherche Web enfant, il doit pointer vers la liste actuelle des « Pages » Web.

Actuellement, tous mes champs créés sont liés à la bibliothèque 'Pages' sur le site racine.

J'ai la définition du champ :

<Field Name="LookupToPages" 
   ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}"
         Type="LookupMulti"
         DisplayName="Related News"
         Group="Intranet.ContentTypes"
         Mult="TRUE"
         Overwrite="TRUE"
         SourceID="http://schemas.microsoft.com/sharepoint/v3"
         List="Pages"
         ShowField="Title"/>

Ce champ ajouté à mon type de contenu utilisé dans la bibliothèque Pages :

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0000"
                Name="News"
               Group="my froup"
               Description="Page layout for intranet news."
               Inherits="TRUE"
               Version="0">    
    <FieldRefs>
      <FieldRef ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}" Name="LookupToPages" />
    </FieldRefs>
  </ContentType>
</Elements>

J'ai essayé d'ajouter une définition de champ à la fonctionnalité avec la portée « Site » et « Web ».Les deux ont les mêmes résultats.J'ai juste une colonne de recherche qui pointe vers le site racine.

Comment rendre ce domaine lié au Web ?

Était-ce utile?

La solution

Evgeny,

S'il s'agit d'une recherche dans la liste elle-même (c'est-à-direvous souhaitez sélectionner des éléments de la même liste, comme des articles d'actualité connexes), vous pouvez définir la propriété de liste sur "self".

<Field Name="LookupToPages" ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}" Type="LookupMulti" DisplayName="Related News" Group="Intranet.ContentTypes" Mult="TRUE" Overwrite="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" List="Self" ShowField="Title"/>

voir ici pour plus d'informations:

http://msdn.microsoft.com/en-us/library/aa979575.aspx

Autres conseils

evgeny,

Je vous recommande d'utiliser un récepteur d'événement si vous provisionnez la liste ou le type de contenu via une fonctionnalité.

En bref, ce que vous devez faire est de créer la colonne de recherche sur la liste, d'obtenir un lien de champ vers la nouvelle colonne, puis d'ajouter le lien champ au type de contenu connecté à la liste.

Quelque chose comme ça devrait faire l'affaire, à condition que vous disposiez déjà d'objets myList, myListCT et pagelist:

string fieldName = myList.Fields.AddLookup("Page Column Display Name", pageList.ID, true);
SPField field = myList.Fields.GetFieldByInternalName(fieldName);
SPFieldLink fieldLink = new SPFieldLink(invoiceField);
myListCT.FieldLinks.Add(invoiceFieldLink);
myListCT.Update();

.b

dans SP2013, vous pouvez créer une colonne de recherche.Dans le champ "Obtenir des informations de", choisissez Pages Site.

Je vous recommande d'utiliser JSOM car il peut également être utilisé dans O 365 facilement. Vous pouvez utiliser la méthode: FieldCollection.addFieldSxML (fieldchema, true, sp.addfieldoptions.addtodefaultContEtType);

Voir pour plus d'informations: http://josharepoint.com/2015/12/02/create-a-new-lookup-field-uce-jsom-in-sharepoint-2013-office-365/

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