2010-01-08 41 views
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的课程?

+0

凯尔,你可以发布你的最终解决方案是什么?我面临着和你一样的问题。 – 2010-06-29 05:11:57

+0

你可以发表你的最终解决方案吗? – Unknown 2016-12-07 15:15:15

回答

0

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

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

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

+0

我做到了,脚本的值是这种格式:GUID,GUID,GUID ;;;;; (每个用户逗号分隔的一个GUID ID,后面跟着4个分号)。当我使用该格式设置字段,然后在编辑模式下查看字段时,它包含输入的确切文本(guid,后跟4个分号) – 2010-01-09 16:01:35

+0

换句话说:Sharepoint没有对设置为该字段的值进行任何翻译。 – 2010-01-09 16:02:08

+0

我想,你也应该阅读这篇文章:http://dotnetmafia.sys-con.com/node/1181567/mobile – naivists 2010-01-09 17:47:41

相关问题