在“列表项”上设置“目标受众”字段,其中包含多个值

时间:2010-01-08 21:48:45

标签: c# sharepoint sharepoint-2007 audience

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

答案 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部件中的列表项中提取数据,并且用户从未看到实际的列表项。