javascript - 将多选人员选择器字段中的用户添加到 SP 组
问题描述
我有一个自定义的 SharePoint Online New from。这里有 4 个人员选择器字段,允许多个用户输入。
每个人员选择器字段都有 4 个 SP 组。
在保存(PreSaveAction)时,我想从各个 SP 组中的每个人员选择器中添加用户。(使用 Javascript/jQuery REST)
可能吗?
解决方案
我遵循以下方法来实现我的要求:
var AppUsrs =[]; // array to store email ID of multiple users from people picker field
function PreSaveItem(){
//SP group 1
var SecVal = getPickerInputElement('ff171');// As there was multiple people picker fields, I took the position.
for(var k=0;k<SecVal.length;k++) // loop through number of users in people field and add each of them in SP group
{
AddUserToSPGrp(SecVal[k]);
}
return true;
}
function getPickerInputElement(identifier)
{
AppUsrs =[];
var tags = document.getElementsByTagName('DIV');
for (var i=0; i < tags.length; i++)
{
var tempString = tags[i].id;
if ((tempString.indexOf(identifier) > 0) && (tempString.indexOf('UserField_upLevelDiv') > 0))
{
var innerSpans = tags[i].getElementsByTagName("SPAN");
for(var j=0; j < innerSpans.length; j++)
{
if(innerSpans[j].id != 'content')
{ AppUsrs.push(innerSpans[j].id.split('|')[2]); // get email ID of users
}
}
return AppUsrs;
}
}
return null;
}
function AddUserToSPGrp(emailIDUsr) {
var clientContext = new SP.ClientContext.get_current();
var siteGroups = clientContext.get_web().get_siteGroups();
var web = clientContext.get_web();
spGroup = siteGroups.getByName('SP group Name');
user = web.ensureUser(emailIDUsr);
var userCollection = spGroup.get_users();
userCollection.addUser(user);
clientContext.load(user);
clientContext.load(spGroup);
clientContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
function onQuerySucceeded() {
console.log('success');
}
function onQueryFailed() {
console.log('Request failed.');
}
我重复了相同的操作,将其他人字段中的用户添加到其他 SP 组。
推荐阅读
- list - 如何检查 Java 集合 Arraylist 中的日期部分?
- html - 如何在html中的文本之后从函数中打印值
- xamarin - 防止 Xamarin Forms Displayactionsheet 在外部触摸时关闭
- php - 网页浏览器上的日文字符编码问题
- javascript - 使用 JavaScript 单击按钮时如何更改段落标记的内容
- spring - Spring security saml2.0 sso 与 wso2
- azure - 我可以不为暂停的 ADF 管道指定开始/结束吗?
- regex - 使用 htaccess 编辑查询字符串
- vba - 如果 olMail.Body = str1 + str2,则更改 olMail.Body 字体名称和字体大小
- javascript - 在 mongoose schema.save 中更新 `let` 变量