【问题标题】:Set "Target Audiences" field with multiple values on a List Item在列表项上设置具有多个值的“目标受众”字段
【发布时间】:2012-07-02 21:27:20
【问题描述】:

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

【问题讨论】:

  • Kyle,你能发布你的最终解决方案吗?我和你面临同样的问题。
  • 你能发布你的最终解决方案吗?

标签: c# sharepoint sharepoint-2007 audience


【解决方案1】:

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

【讨论】:

  • 我这样做了,脚本的值是这样的格式:GUID,GUID,GUID;;;; (每个观众用逗号分隔一个 GUID ID,后跟 4 个分号。)当我使用该格式设置字段,然后在编辑模式下查看该字段时,它包含输入的确切文本(guid,后跟 4 个分号.)
  • 换句话说:Sharepoint 没有对设置为该字段的值进行任何翻译。
  • 我想,你也应该看看这篇文章:dotnetmafia.sys-con.com/node/1181567/mobile
  • 该链接用于在 Web 部件上使用受众。我正在尝试查看列表项。我已经完全尝试了该帖子所说的内容,但是由于列表项上没有 AuthorizationFilter 属性,因此我将格式化字符串设置为 "Target Audiences" 字段的值。无论如何,我已经为我的问题想出了一个解决方法,我很快就会发布答案。不过,我仍然想知道是否可以使用 OOB SharePoint 受众定位来完成。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 2018-04-25
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多