使用JSOM为人员/组字段插入多个值可以通过以下步骤实现:
SP.Field
对象的getByInternalNameOrTitle
方法来获取字段对象。例如,假设要插入的字段名为"Members",可以使用以下代码获取字段对象:var field = context.get_web().get_lists().getByTitle('YourListName').get_fields().getByInternalNameOrTitle('Members');
SP.FieldUserValue
对象来表示人员/组字段的值。例如,假设要插入的人员/组字段值为"user1@domain.com"和"user2@domain.com",可以使用以下代码创建值对象并添加到集合中:var user1 = new SP.FieldUserValue();
user1.set_lookupId(1); // 设置用户ID,可以从用户列表中获取
user1.set_email('user1@domain.com');
var user2 = new SP.FieldUserValue();
user2.set_lookupId(2); // 设置用户ID,可以从用户列表中获取
user2.set_email('user2@domain.com');
var values = new SP.FieldUserValueCollection();
values.add(user1);
values.add(user2);
SP.Field
对象的set_item
方法来设置字段的值属性,并使用update
方法来更新字段。例如,可以使用以下代码将值集合对象分配给字段对象并更新字段:field.set_item('Title', values);
field.update();
context.executeQueryAsync(successHandler, errorHandler);
executeQueryAsync
方法来执行更新操作,并提供成功和失败的回调函数。在成功回调函数中,可以执行任何必要的操作,例如显示成功消息或刷新页面。在失败回调函数中,可以处理错误并显示适当的错误消息。完整的示例代码如下:
var context = SP.ClientContext.get_current();
var field = context.get_web().get_lists().getByTitle('YourListName').get_fields().getByInternalNameOrTitle('Members');
var user1 = new SP.FieldUserValue();
user1.set_lookupId(1); // 设置用户ID,可以从用户列表中获取
user1.set_email('user1@domain.com');
var user2 = new SP.FieldUserValue();
user2.set_lookupId(2); // 设置用户ID,可以从用户列表中获取
user2.set_email('user2@domain.com');
var values = new SP.FieldUserValueCollection();
values.add(user1);
values.add(user2);
field.set_item('Title', values);
field.update();
context.executeQueryAsync(successHandler, errorHandler);
function successHandler() {
console.log('人员/组字段插入成功');
}
function errorHandler(sender, args) {
console.log('人员/组字段插入失败:' + args.get_message());
}
这样,使用JSOM就可以为人员/组字段插入多个值了。
注意:以上代码示例中的"YourListName"需要替换为实际的列表名称。另外,还需要确保在执行JSOM代码之前已经加载了SP.js文件。
领取专属 10元无门槛券
手把手带您无忧上云