Установите поле “Целевые аудитории” с несколькими значениями в элементе списка
-
19-09-2019 - |
Вопрос
Я пытаюсь программно установить поле "Целевые аудитории" в элементе списка.Мне удалось программно установить значение для одной аудитории, но когда я пытаюсь использовать несколько аудиторий, SharePoint пытается интерпретировать значение, которое я устанавливаю, как одну аудиторию, а не несколько.Я устанавливаю значение, используя приведенный ниже код.
listItem[listItem.Fields["Target Audiences"].InternalName] = "Audience One";
Я использую этот код для указания нескольких аудиторий следующим образом:
listItem[listItem.Fields["Target Audiences"].InternalName] = "Audience One; Audience Two";
Когда я делаю это, SharePoint пытается интерпретировать всю строку как единую аудиторию, и при редактировании элемента списка я получаю сообщение, в котором говорится "No exact match was found."
Использую ли я правильный формат для указания нескольких аудиторий для этого поля, или есть класс, который я должен использовать аналогично SPFieldLookupValue
?
Решение 2
Просто понял, что я так и не вернулся и не ответил на этот вопрос.
В итоге я сохранил имена аудиторий в столбце, прикрепленном к каждому элементу списка, а затем запросил объектную модель, чтобы узнать, является ли текущий пользователь членом этих аудиторий.У меня это сработало, потому что я извлекал данные из элемента списка в пользовательской веб-части, а пользователь никогда не видел сам элемент списка.
Другие советы
Я не знаю, как сохранить несколько аудиторий в SPListItem, но если бы у меня возникла эта проблема, я бы попытался распечатать значение этого поля из сценария PowerShell.Что - то вроде:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint");
$site = Microsoft.SharePoint.SPSite("http://yourserver");
$web = $site.openweb();
$list = $web.lists["YourList"];
$item = $list.getitembyid(itemid);
write-output $item["Target Audiences"];
Редактировать:нашел некоторую информацию о том, каково на самом деле значение поля Audience: http://dotnetmafia.sys-con.com/node/1181567/mobile