Voici un code qui ajoutera un champ de recherche à un type de contenu existant.
Si vous utilisez des définitions de liste, c'est la seule façon d'inclure un champ de recherche. Il ne peut pas être ajouté dans le CAML de la définition de liste car un guid pour la liste de recherche est requis et cela n'est pas connu auparavant. SharePoint génère automatiquement ce guide lorsque la liste est créée.
Vous devez d'abord créer la colonne de recherche dans la SPWeb racine du SPSite
private void CreateLookup(SPWeb web, SPList lookupList, String lookupField, String fieldName, String fieldGroup, bool allowMultiLookup)
{
using (SPSite site = web.Site)
{
using (SPWeb rootWeb = site.RootWeb)
{
rootWeb.Fields.AddLookup(fieldName, lookupList.ID, web.ID, false);
SPFieldLookup fieldLookup = (SPFieldLookup)rootWeb.Fields[fieldName];
if (fieldLookup == null) return;
fieldLookup.AllowMultipleValues = allowMultiLookup;
fieldLookup.LookupField = lookupField;
fieldLookup.Group = fieldGroup;
fieldLookup.Title = fieldName;
fieldLookup.Update(true);
}
}
}
Et alors vous aurez besoin d'ajouter ce champ pour le type de contenu exsisting
private void AddLookupToContentType(SPWeb web, String fieldName, String contentTypeName)
{
using (SPSite site = web.Site)
{
using (SPWeb rootWeb = site.RootWeb)
{
SPFieldLookup lookupField = (SPFieldLookup)rootWeb.Fields[fieldName];
if (lookupField == null) return;
SPContentType riskContentType = rootWeb.ContentTypes[contentTypeName];
if (riskContentType == null) return;
riskContentType.FieldLinks.Add(new SPFieldLink(lookupField));
riskContentType.Update(true);
}
}
}
bien voir c'est une recherche par exemple ... juste essayer de comprendre comment le coder ... Je suppose que j'ai besoin d'importer la liste d'abord comme un nouveau type de contenu. Puis créez une colonne de recherche (avec plusieurs) pour le type de contenu?!? – user38734