Wie eine Nachschlagespalte erstellen, die ein Doc Lib Ziele und verwenden den ‚Namen‘ des Dokuments?

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

Frage

Wie Sie eine Lookup-Spalte in eine Dokumentbibliothek erstellen, die den ‚Namen‘ des Dokuments als Suchwert verwendet?

fand ich eine Blog-Post, die ein anderes benutzerdefiniertes Feld wie „Dateiname“ empfiehlt das Hinzufügen und dann ein Element Empfänger mit dem Wert aus dem Feld Namen das benutzerdefinierten Feld zu füllen, aber das scheint geschmacklos. Link zum Blog bei Menschen interessieren: http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc- lib-name-field.aspx

Ich habe eine Reihe von benutzerdefinierten Dokumentinhaltstypen, die ich möchte nicht mit einer Arbeit um, dass Krempel wirklich sowieso sollte funktionieren.

War es hilfreich?

Lösung

Eine Möglichkeit, dies zu tun (wenn auch nicht der einfachste Weg) ist durch eine benutzerdefiniertes Feld Art zu schaffen, die die SPFieldLookup-Klasse erweitert. Sharepoint Feld Editor für Lookup Felder gezielt versteckt alle Spalte Typen, die nicht unterstützt werden durch Lookup Felder, aber Sie können ein Feld-Editor für die benutzerdefinierten Feldtyp erstellen, die sie zeigt.

Allerdings habe ich eine Lookup-Spalte erstellt, die zuvor in einer Dokumentenbibliothek zu einer Spalte Name verweist, und es ist wahrscheinlich nicht funktionieren, wie man es erwarten würde. Während der Wert in der Lookup-Spalte gespeichert gültig ist, ist es nicht richtig, in der Listenansicht oder Ansicht auf Eigenschaften Form angezeigt.

Die Lösung, die Sie tatsächlich geschrieben ist vielleicht die beste Art und Weise, dies zu handhaben. Lookup Felder erfordern einige kludges, wenn Sie komplexere Szenarien zu handhaben wollen, aber das ist, weil sie nicht die gleiche Funktionalität wie eine Fremdschlüsselbeziehung in einer Datenbank bereitgestellt werden sollten.

Andere Tipps

Ich habe einen einen Schritt Workflow den Titel aus dem Namen zu setzen, beschossen ändern und erstellt. Scheint Sekunden zu arbeiten und nahm zu erstellen.

Coding in irgendeiner Form immer macht mir Angst. Also hier ist was ich getan habe: Ich habe einfach den Stupid „Titel“ Feld, um etwas anderes umbenannt, sagt „Keywords“, da man alles mit diesem Bereich tun kippt: kann nicht einmal zwingend machen. Dann habe ich eine weitere Single line Feld namens „Titel“ und verwendet, um dieses Feld für die Lookups

Nun gibt es eine einfache Lösung für die und in funktionieren könnte in einigen Fällen. In dem Punkt gebracht, wenn Sie das Titelfeld Mandatory machen, wird dies den Benutzer zwingen, einen Titel einzugeben. Auf diese Weise können wir Titelfeld als Nachschlag-Feld verwenden.

Jetzt Wie das zu tun? Man Sie fertig sind, eine Dokumentbibliothek erstellen gehen in die Bibliothek Einstellung. Wählen Sie Erweiterte Einstellungen und wählen Sie Ja für die Option „Allow Verwaltung von Inhaltstypen?“. Dann gehen Sie zurück in die Bibliothek Einstellung und unter Inhaltstypen wählen Sie das „Dokument“ Inhaltstyp. DANN Titel Spalte auswählen und wählen Sie dann „Required (Müssen Informationen enthalten)“ und sagen OK.

Versuchen Sie nun, um ein Dokument zu dieser Dokumentbibliothek hochladen. Sie Feld Titel in der Form sehen.

Hope, das hilft Prost Vaqar

Sie haben das Feld als XML mit dem Showfield als ‚FileLeafRef‘

hinzufügen

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top