我正在尝试以编程方式在列表项上设置“目标受众”字段。我已经能够以编程方式为一个受众设置值,但是当我尝试使用多个受众时,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
类似的类?
答案 0 :(得分: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"];
编辑:找到一些有关受众群体字段值实际为何的信息:http://dotnetmafia.sys-con.com/node/1181567/mobile
答案 1 :(得分:0)
刚才意识到我再也没有回来过这个问题。
我最终在每个列表项附加的列中存储了受众的名称,然后查询对象模型以查看当前用户是否是这些受众的成员。这对我有用,因为我从自定义Web部件中的列表项中提取数据,并且用户从未看到实际的列表项。