【问题标题】:Add users from multi selection people picker field to SP group将多选人员选择器字段中的用户添加到 SP 组
【发布时间】:2018-11-15 16:34:07
【问题描述】:

我有一个自定义 SharePoint Online New from。 这里有 4 个人员选择器字段,允许多个用户输入。

每个人员选择器字段有 4 个 SP 组。

在保存 (PreSaveAction) 时,我想从各个 SP 组中的每个人员选择器添加用户。 (使用 Javascript/jQuery REST)

有可能吗?

【问题讨论】:

    标签: javascript jquery rest sharepoint-online


    【解决方案1】:

    我遵循以下方法来实现我的要求:

    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 组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2021-08-08
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      相关资源
      最近更新 更多