Установите поле “Целевые аудитории” с несколькими значениями в элементе списка

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

Вопрос

Я пытаюсь программно установить поле "Целевые аудитории" в элементе списка.Мне удалось программно установить значение для одной аудитории, но когда я пытаюсь использовать несколько аудиторий, 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

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