亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從人員選取器獲取值并將其添加到人員列中的列表中

從人員選取器獲取值并將其添加到人員列中的列表中

哈士奇WWW 2022-08-18 16:27:50
我在我的SP16網站上有一個簡單的JS表單,我在其中添加了這個標準的人員選擇器:$(document).ready(function() {  initializePeoplePicker('pickerUAT');function initializePeoplePicker(peoplePickerElementId) {var schema = {};schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';schema['SearchPrincipalSource'] = 15;schema['ResolvePrincipalSource'] = 15;schema['AllowMultipleValues'] = false;schema['MaximumEntitySuggestions'] = 50;schema['Width'] = '269px';this.SPClientPeoplePicker_InitStandaloneControlWrapper(peoplePickerElementId, null, schema);}});我能夠從選取器中獲取所選值(作為顯示名稱,電子郵件等),如下所示:function getEmailFromPeoplePicker(title) {var ppDiv = $("div[title='" + title + "']")[0];var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict.pickerUAT_TopSpan;var userList = peoplePicker.GetAllUserInfo();var userInfo = userList[0];var addThisUser;if(userInfo != null){addThisUser = userInfo.Key;}return addThisUser;}我有一個列表,我可以添加從其他表單域獲取的其他值,通常是通過document.getElementById(“XXX”).value和這段代碼:function addSubUser(addThisValue)  {var clientContext = new SP.ClientContext(siteurl);  var itemCreateInfo = new SP.ListItemCreationInformation();  var valueToAdd = addThisValue; var list = clientContext.get_web()  .get_lists()  .getByTitle("UAT");   this.oListItem = list.addItem(itemCreateInfo);  oListItem.set_item('userUAT', valueToAdd);  oListItem.update();  clientContext.load(oListItem);  clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));  }但是,此代碼不適用于從人員選取器獲取的值??刂婆_.log(typeof addThisUser)告訴我,我從選取器獲得的值只是一個字符串,我是否正確地假設我不能簡單地將字符串添加到人員/組列中?無論如何,我怎樣才能讓它工作?
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

我認為您可以嘗試使用兩種不同的方法更新文件


作為查找提供用戶的ID



    var LookupSingle = new SP.FieldLookupValue();  

    LookupSingle.set_lookupId(2);  // UserId

    oListItem.set_item('SomeLookupColumn', LookupSingle); 



作為單用戶字段



    var singleUser = SP.FieldUserValue.fromUser('name surname');  

    oListItem.set_item('SomeSingleUserColumn', singleUser);  


查看完整回答
反對 回復 2022-08-18
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

我的本地 SharePoint 2016(多用戶字段)中的示例測試腳本。


CustomPeoplePicker:

    <div id="peoplePickerDiv"></div>

    <input id="Button1" onclick="SaveItem()" type="button" value="button" />

    <script src="/_layouts/15/sp.runtime.js"></script>

    <script src="/_layouts/15/sp.js"></script>

    <script src="/_layouts/15/1033/strings.js"></script>

    <script src="/_layouts/15/clienttemplates.js"></script>

    <script src="/_layouts/15/clientforms.js"></script>

    <script src="/_layouts/15/clientpeoplepicker.js"></script>

    <script src="/_layouts/15/autofill.js"></script>

    <script src="_layouts/15/sp.core.js"></script>

    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>

    <script type="text/javascript">

        $(document).ready(function () {

            SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);

        })


        function sharePointReady() {

            context = new SP.ClientContext.get_current();

            web = context.get_web();

            var schema = {};

            schema['PrincipalAccountType'] = 'User,DL,SecGroup,SPGroup';

            schema['SearchPrincipalSource'] = 15;

            schema['ResolvePrincipalSource'] = 15;

            schema['AllowMultipleValues'] = true;

            schema['MaximumEntitySuggestions'] = 50;

            schema['Width'] = '280px';


            this.SPClientPeoplePicker_InitStandaloneControlWrapper('peoplePickerDiv', null, schema);

        }


        function SaveItem() {

            var ctx = new SP.ClientContext.get_current();

            var web = context.get_web();

            var list = web.get_lists().getByTitle("MyList");

            var listCreationInformation = new SP.ListItemCreationInformation();

            var listItem = list.addItem(listCreationInformation);

            var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict.peoplePickerDiv_TopSpan;

            // Get information about all users.

            var users = peoplePicker.GetAllUserInfo();

            // Get user keys.

            var keys = peoplePicker.GetAllUserKeys();

            var finalusers = new Array();

            for (var i = 0; i < users.length; i++) {

                var arryuser = users[i];

                finalusers.push(SP.FieldUserValue.fromUser(arryuser.Key));

            }

            listItem.set_item("Title", "Title");

            listItem.set_item("Requestor", finalusers);

            listItem.update();

            ctx.load(listItem);

            ctx.executeQueryAsync(

                Function.createDelegate(this, function () {

                    console.log(listItem);

                }),

                Function.createDelegate(this, function (sender, args) {

                    alert('Query failed. Error: ' + args.get_message());

                })

            );

        }

    </script>


查看完整回答
反對 回復 2022-08-18
  • 2 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號