SharePoint里如何设置People picker值为当前登录用户值
生活随笔
收集整理的這篇文章主要介紹了
SharePoint里如何设置People picker值为当前登录用户值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要:
??? 相信很多朋友都遇到過需要將某個People類型的字段值設置為當前登錄用戶的情況而且已經給出了解決方案,因此本文沒有什么新意,算法上也比較冗余,僅僅在博客里算作知識的備份。
思路:
??? 在畫面的右上角有一個歡迎控件,現實內容為“Welcome, 登陸用戶名”,我們的代碼就是要把這個用戶名取出來,然后取到PeoplePicker字段對應的DIV,調用innerHTML屬性來進行值得設置。
步驟:
??? 第一步,取得登陸用戶,通過Welcome來查找:
function getCurrentUser() { var tags = document.getElementsByTagName('a'); for (var i=0; i < tags.length; i++) { if(tags[i].innerText.substr(0,7) == 'Welcome') { return tags[i].innerText.substr(8,tags[i].innerText.length); } } }??? 第二步,查找PeoplePicker字段對應的DIV,一層一層往里追溯,算法并不好,最后break后還會繼續循環,雖然對最終結果沒什么影響,但不是什么好算法,有興趣的朋友發現好的算法或者通過JQuery可以查到的算法歡迎共享!
function getPickerInputElement(fieldsInternalName) { var result = ""; var divs = document.getElementsByTagName("DIV"); for(var i=0; i < divs.length ; i++) { if(divs[i].id=="WebPartWPQ2") { var tds = divs[i].getElementsByTagName("TD"); for(var j=0; j < tds.length; j++) { var cellHTML = tds[j].innerHTML; if(cellHTML.indexOf('FieldInternalName="' + fieldsInternalName + '"') >= 0) { var innerDivs = tds[j].getElementsByTagName("DIV"); for(var k=0; k < innerDivs .length; k++) { if(innerDivs[k].id.indexOf("UserField_upLevelDiv") > 0) { result = innerDivs[k]; break; } } } } } } return result; }??? 第三步,設置值,我們通過一個叫做fillPeoplePickerWithCurrentUser的方法來進行設置,調用SharePoint庫方法_spBodyOnLoadFunctionNames,確保方法會在頁面內容加載完成后執行。
_spBodyOnLoadFunctionNames.push("fillPeoplePickerWithCurrentUser");function fillPeoplePickerWithCurrentUser() { var currentUser = getCurrentUser(); if(currentUser != null) { var pp = getPickerInputElement(“SetMe”); if(pp != null) pp.innerHTML = currentUser; } }說明:
??? 本方法沒有在Firefox瀏覽器進行調試。
轉載于:https://www.cnblogs.com/johnsonwong/archive/2011/06/12/2079147.html
總結
以上是生活随笔為你收集整理的SharePoint里如何设置People picker值为当前登录用户值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell脚本作业
- 下一篇: 最近项目中遇到的一个算法挑战