5

我正在将用户写入 SharePoint 列表。

我读过 SharePoint 用户字段里面有一个这样的字符串: userId;#userLoginName

在写入用户字段时,我尝试以相同的方式进行格式化,例如,当我编写此字符串时,它可以工作: 9;#i:0#.f|membership|ectropy@example.org

但奇怪的是(至少对我来说)这9;#似乎有效,甚至9. 即使我根本不传递userLoginName信息,它loginId似乎也足以识别我正在谈论的用户。

这似乎意味着在写入 SharePoint 用户字段时,您只需要 id 和userLoginName,或者实际上,后面的所有内容loginId都无关紧要。

我在这里的推理是否正确?或者,如果我省略了 userLoginName 信息,可能会产生意想不到的后果?

4

2 回答 2

8

您的假设是正确的,在为 User 字段指定值时,只有 User Id 是强制性属性。

但由于SP.FieldUserValue 对象用于存储用户字段的值,因此建议使用此对象获取和设置值,如下例所示:

var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var lists = web.get_lists();
var list = lists.getByTitle(listTitle);
var item = list.getItemById(itemId);

var assignedToVal = new SP.FieldUserValue();
assignedToVal.set_lookupId(11);   //specify User Id 
item.set_item(fieldName,assignedToVal);
item.update();

ctx.executeQueryAsync(
    function() {
        console.log('Updated');
    },
    function(sender,args) {
        console.log('An error occurred:' + args.get_message());
    }
);
于 2014-06-17T23:14:02.163 回答
0

我在这里使用人名找到答案,如果你没有,id 比查找用户 id 更容易。

https://gist.github.com/rheid/18635032d8371c7825b3320eae57071f

// Single Person  
   var singleUser = SP.FieldUserValue.fromUser('Peter Dotsenko');  
   oListItem.set_item('PetkaPersonSingle', singleUser);  

   //Multi Person  
   var petkaUserMultiArray = new Array("peterd@domain.com","Peter Dotsenko","domain\\peterd");  
   var lookups = [];  
   for (var ii in petkaUserMultiArray) {  
      var lookupValue = SP.FieldUserValue.fromUser(petkaUserMultiArray[ii]);  
      lookups.push(lookupValue);  
   }  
   oListItem.set_item('PetkaPersonMulti', lookups);
//
于 2019-08-07T13:21:27.893 回答