1

我正在尝试以编程方式在列表项上设置“目标受众”字段。我已经能够以编程方式为一个受众设置值,但是当我尝试使用多个受众时,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

4

2 回答 2

0

我不知道如何在 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

于 2010-01-09T07:53:45.200 回答
0

刚刚意识到我再也没有回来并回答了这个问题。

我最终将受众的名称存储在附加到每个列表项的列中,然后查询对象模型以查看当前用户是否是这些受众的成员。这对我有用,因为我从自定义 Web 部件中的列表项中提取数据,而用户从未看到实际的列表项。

于 2011-03-18T01:21:12.680 回答