SharePoint客户端对象模型UserFieldValue和[ME] CAML查询

时间:2014-06-01 22:29:04

标签: sharepoint

我遇到了一种奇怪的行为。有人可以复制这个以查看它是否是错误或者我做错了什么

  1. 创建一个列表并添加一个MultiValue Person字段,让我们将此字段称为Gatekeepers

  2. 使用客户端对象模型,创建一个列表项并确保填充上面的字段。我使用以下代码

    List<string> gatekeepers = new List<string>() { @"Domain\User1", @"Domain\User2" }; //User1 is your ID
    
    var gatekeeperUserValues = gatekeepers
    .Select(loginName => FieldUserValue.FromUser(loginName))
    .ToList();
    
    item["Gatekeepers"] = gatekeeperUserValues;
    item.Update();
    clientContext.ExecuteQuery();
    
  3. 到目前为止一切正常。该项目已创建,列显示正确的值。

    现在在列表中创建一个使用[Me]作为过滤器的视图,例如

    View Name = 'My Items'
    Filter = Gatekeepers is equal to [Me]
    

    您会发现视图不会返回任何行。

    现在,使用标准SharePoint编辑界面编辑项目,不要更改任何值,只需将其保存回来。

    这次你的物品&#39;视图将返回正确的结果,即您在上面创建的项目将在此视图中显示

    当使用CSOM更新person字段而不是使用服务器端对象模型时,似乎有些不同。

0 个答案:

没有答案