Comment créer une colonne de recherche qui cible une bibliothèque de documents et utilise le 'Nom' du document?

StackOverflow https://stackoverflow.com/questions/493734

Question

Comment créer une colonne de recherche dans une bibliothèque de documents utilisant le "Nom" du document comme valeur de recherche?

J'ai trouvé un article de blog qui recommande d'ajouter un autre champ personnalisé tel que " FileName " puis en utilisant un récepteur d’élément pour renseigner le champ personnalisé avec la valeur du champ Nom mais cela semble dérisoire. Lien vers le blog au cas où les gens seraient intéressés: http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc- lib-name-field.aspx

J'ai un tas de types de contenus de documents personnalisés que je ne veux pas encombrer d'un travail qui devrait vraiment fonctionner de toute façon.

Était-ce utile?

La solution

Une façon de procéder (bien que ce ne soit pas la solution la plus simple) consiste à créer un type de champ personnalisé qui étend la classe SPFieldLookup. L'éditeur de champs de SharePoint pour les champs de recherche cache délibérément tous les types de colonnes non pris en charge par les champs de recherche, mais vous pouvez créer un éditeur de champ pour votre type de champ personnalisé qui les affiche.

Cependant, j'ai déjà créé une colonne de recherche qui pointe vers une colonne de nom dans une bibliothèque de documents et cela ne fonctionne probablement pas comme prévu. Bien que la valeur stockée dans la colonne de recherche soit valide, elle n'apparaît pas correctement en mode Liste ou dans le formulaire Propriétés de la vue.

La solution que vous avez publiée peut être le meilleur moyen de gérer cela. Les champs de recherche nécessitent des kludges si vous souhaitez gérer des scénarios plus complexes, mais ils ne sont pas censés fournir les mêmes fonctionnalités qu'une relation de clé étrangère dans une base de données.

Autres conseils

J'ai créé un workflow en une étape pour définir le titre à partir du nom, déclenché lors de la modification et créé. Semble fonctionner et a pris quelques secondes à créer.

Le codage sous quelque forme que ce soit me fait toujours peur. Voici ce que j’ai fait: j’ai simplement renommé le stupide & Quot; titre & Quot; Champ à autre chose, dites & "Mots clés &", Puisque vous ne pouvez rien faire avec ce champ: vous ne pouvez même pas le rendre obligatoire. Ensuite, j'ai créé un autre champ de ligne unique appelé & Quot; Titre & Quot; et utilisé ce champ pour les recherches

Eh bien, il existe une solution simple à cela et pourrait fonctionner dans certains cas. En résumé, si vous rendez le champ Titre obligatoire, cela obligera l'utilisateur à entrer un titre. De cette manière, nous pouvons utiliser le champ titre comme champ de recherche.

Maintenant, comment faire ça? Une fois que vous avez fini de créer une bibliothèque de documents, accédez aux paramètres de la bibliothèque. Sélectionnez Paramètres avancés et sélectionnez Oui pour l'option & "Autoriser la gestion des types de contenu? &"; Revenez ensuite au paramètre Bibliothèque et aux types de contenu Sous sélectionnez le & Quot; Document & Quot; Type de contenu. Ensuite, sélectionnez Title Column puis Select & Quot; Required (Doit contenir des informations) & Quot; et dire OK.

Maintenant, essayez de télécharger un document dans cette bibliothèque de documents. Vous verrez le champ Titre dans le formulaire.

J'espère que cela aide À votre santé Vaqar

Vous devez ajouter le champ en tant que XML avec ShowField en tant que 'FileLeafRef'

var XmlFieldDefinition = "<Field DisplayName='myLookupColumn' Type='LookupMulti' StaticName='myLookupColumn' Name='myLookupColumn' Required='FALSE' List='THE LOOKUP ID HERE' WebId='THE WEB ID HERE' UnlimitedLengthInDocumentLibrary='TRUE' Mult='TRUE' Sortable='FALSE' ShowField='FileLeafRef' />"

Field fld = fieldCollection.AddFieldAsXml(XmlFieldDefinition, true, AddFieldOptions.DefaultValue);
ClientContext.Load(fld);

ClientContext.ExecuteQuery();

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top