SharePoint里如何设置People picker值为当前登录用户值
2011-06-12 21:12
686 查看
摘要:
相信很多朋友都遇到过需要将某个People类型的字段值设置为当前登录用户的情况而且已经给出了解决方案,因此本文没有什么新意,算法上也比较冗余,仅仅在博客里算作知识的备份。
思路:
在画面的右上角有一个欢迎控件,现实内容为“Welcome, 登陆用户名”,我们的代码就是要把这个用户名取出来,然后取到PeoplePicker字段对应的DIV,调用innerHTML属性来进行值得设置。
![](http://images.cnblogs.com/cnblogs_com/johnsonwong/201106/201106122112161185.png)
![](http://images.cnblogs.com/cnblogs_com/johnsonwong/201106/201106122112179266.png)
步骤:
第一步,取得登陆用户,通过Welcome来查找:
第二步,查找PeoplePicker字段对应的DIV,一层一层往里追溯,算法并不好,最后break后还会继续循环,虽然对最终结果没什么影响,但不是什么好算法,有兴趣的朋友发现好的算法或者通过JQuery可以查到的算法欢迎共享!
第三步,设置值,我们通过一个叫做fillPeoplePickerWithCurrentUser的方法来进行设置,调用SharePoint库方法_spBodyOnLoadFunctionNames,确保方法会在页面内容加载完成后执行。
说明:
本方法没有在Firefox浏览器进行调试。
相信很多朋友都遇到过需要将某个People类型的字段值设置为当前登录用户的情况而且已经给出了解决方案,因此本文没有什么新意,算法上也比较冗余,仅仅在博客里算作知识的备份。
思路:
在画面的右上角有一个欢迎控件,现实内容为“Welcome, 登陆用户名”,我们的代码就是要把这个用户名取出来,然后取到PeoplePicker字段对应的DIV,调用innerHTML属性来进行值得设置。
![](http://images.cnblogs.com/cnblogs_com/johnsonwong/201106/201106122112161185.png)
![](http://images.cnblogs.com/cnblogs_com/johnsonwong/201106/201106122112179266.png)
步骤:
第一步,取得登陆用户,通过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浏览器进行调试。
相关文章推荐
- SharePoint: 设置People or Group字段默认值为当前用户
- SharePoint中如何获得当前用户的loginName
- sharepoint 中载入系统当前登录的用户,显示为ID#LoginName
- 获取当前sharepoint站点集中的登录用户及在workflow里获取当前登录用户
- 用Javascript获取SharePoint当前登录用户的用户名及Group信息
- Linux如何查看系统当前登录用户信息,linux su命令参数及用法详解(linux切换用户命令)
- Java设置session超时(失效)的时间 在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session 具体设置的方法有三种:
- MySQL用户设置密码后,如何免密登录?(~/.my.cnf)
- (转载)服务应用程序如何访问当前登录用户的信息
- 如何设置linux操作系统以root用户登录?
- 如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户?
- C#笔记1——如何在登录界面设置主界面的ToolStripMenuItem的enabled属性,实现不同用户进入不同模块
- 如何获取Dynamics当前登录的用户的GUID,进而获取用户的信息
- 如何在HPUX的终端提示符前显示当前登录用户信息和所在目录
- 如何在Ubuntu下设置root用户自动登录
- SharePoint基于windows验证的如何通过组策略实现IE自动以当前域账号登录SP站点
- 如何在CentOS6.4中设置VNC多用户登录
- 如何使用 Ntrights.exe 实用工具设置登录用户权限
- 如何获取 当前Cordys用户设置的 lang code
- windows Win7如何设置多用户同时远程登录