Как создать столбец подстановки, который нацелен на библиотеку Doc и использует "Имя" документа?

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

Вопрос

Как создать столбец подстановки в библиотеку документов, которая использует "Имя" документа в качестве значения подстановки?

Я нашел сообщение в блоге, в котором рекомендуется добавить еще одно пользовательское поле, например "FileName", а затем использовать получатель элемента для заполнения пользовательского поля значением из поля Name, но это кажется дрянным.Ссылка на блог на случай, если людям будет интересно:http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc-lib-name-field.aspx

У меня есть куча пользовательских типов содержимого документов, которые я не хочу загромождать обходными путями, которые в любом случае действительно должны работать.

Это было полезно?

Решение

Один из способов, которым вы можете это сделать (хотя и не самый простой способ), - создать пользовательский тип поля, который расширяет класс SPFieldLookup.Редактор полей SharePoint для полей подстановки целенаправленно скрывает любые типы столбцов, которые не поддерживаются полями подстановки, но вы можете создать редактор полей для своего пользовательского типа поля, который показывает их.

Однако ранее я создал столбец подстановки, который указывает на столбец Name в библиотеке документов, и, вероятно, он работает не так, как вы ожидали.Хотя значение, сохраненное в столбце подстановки, является допустимым, оно не отображается непосредственно в виде списка или в форме Просмотр свойств.

Решение, которое вы опубликовали, на самом деле может быть лучшим способом справиться с этим.Поля поиска требуют некоторых кластеров, если вы хотите обрабатывать более сложные сценарии, но это потому, что они не предназначены для обеспечения той же функциональности, что и отношения внешнего ключа в базе данных.

Другие советы

Я создал одноэтапный рабочий процесс для установки заголовка на основе имени, нажал кнопку изменить и создал.Кажется, сработало, и на создание ушло несколько секунд.

Кодирование в любой форме всегда пугает меня.Итак, вот что я сделал:Я просто переименовал Глупое поле "Title" во что-то другое, скажем, "Keywords", поскольку вы ничего не можете сделать с этим полем:не могу даже сделать это обязательным.Затем я создал еще одно однострочное поле под названием "Title" и использовал это поле для поиска

Что ж, для этого есть простое решение, которое в каком-то случае может сработать.В двух словах, если вы сделаете поле Title обязательным, это заставит пользователя ввести заголовок.Таким образом, мы можем использовать поле заголовка в качестве поля подстановки.

Теперь, как это сделать?После того, как вы закончите создавать библиотеку документов, перейдите в настройки библиотеки.Выберите Предварительную настройку и выберите "Да" для опции "Разрешить управление типами контента?".Затем вернитесь к настройкам библиотеки и в разделе типы контента выберите тип контента "Документ".Затем выберите столбец заголовка, а затем выберите "Обязательно (должно содержать информацию)" и скажите "ОК".

Теперь попробуйте загрузить документ в эту библиотеку документов.В форме вы увидите поле Заголовка.

Надеюсь, это поможет Приветствия Вакар

Вы должны добавить поле в формате XML с ShowField как '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();

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top