SharePoint PeopleEditor控件使用
以下用于简要介绍在SharePoint 2016二次开发中如何使用PeopleEditor人员选择器,并采用前端的方式获取和设置值。
一、在使用的.aspx页面进行注册
<%@ Register TagPrefix="sp" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
二、引用Css和Js文件
<sp:CssLink ID="CssLink1" runat="server" Version=""></sp:CssLink>
<sp:ScriptLink ID="ScriptLink1" Language="javascript" Name="core.js" OnDemand="true" runat="server" Localizable="false"></sp:ScriptLink>
<sp:DelegateControl ID="DelegateControl1" runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"></sp:DelegateControl>
<sp:CssRegistration ID="CssRegistration1" Name="Themable/corev15.css" runat="server"></sp:CssRegistration>
若采用SharePoint原生母版页,以上2个步骤,就已存在,无需从新引用,若采用自定义母版页,需要自己注册和添加相关文件;
三、使用实例Demo
<fieldset>
<legend>SP人员选择器</legend>
<sp:PeopleEditor ID="PeopleEditor1" runat="server" Width="329px" Height="65px" AllowEmpty="true" MultiSelect="True" SelectionSet="User,DL,SecGroup,SPGroup" ValidatorEnabled="True" /> <br /> <input id="btnSet" type="button" value="设置值" />
<input id="btnGet" type="button" value="获取值" />
<input id="btnGetFirst" type="button" value="获取第一个用户值" />
<%--<input id="btnClear" type="button" value="清空值"/>--%>
<br /> <textarea id="btnInfo"></textarea> <script>
$(function () { $("#btnGet").click(function () {
var infoString = "";
var loginInfo = getPeopleEditorValue("<%=PeopleEditor1.ClientID%>");
var loginInfoArray = loginInfo.split("!#");
$.each(loginInfoArray, function (i, item) {
if (item.indexOf("i:0#.w|") > -1) {//域用户
infoString += "用户:" + item + "\r\n";
}
else if (item.indexOf("c:0+.w|") > -1) {//域组
infoString += "域组:" + item + "\r\n"; } else {
infoString += "SP组:" + item + "\r\n";
}
});
$("#btnInfo").val(infoString);
}); $("#btnSet").click(function () {
setPeopleEditorValue("<%=PeopleEditor1.ClientID%>", "liyuxin;bli;软件部;丽水烟草模板管理系统 位成员");
}); $("#btnClear").click(function () {
clearPeopleEditor("<%=PeopleEditor1.ClientID%>");
}); $("#btnGetFirst").click(function () { function userCall(user) {
var userId = user.get_id();
var userLoginName = user.get_loginName();
var userTitle = user.get_title();
$("#btnInfo").val(userId + ";#" + userLoginName + ";#" + userTitle);
} getUserByLoginName("liyuxin", userCall); }); }); //获取人员选择器的值
function getPeopleEditorValue(pickerid) {
var loginInfo = [];
var items = $(".ms-entity-resolved", "#" + pickerid + "_upLevelDiv");
$.each(items, function () {
var entity = $("#divEntityData", this);
var key = entity.attr("key");
var displaytext = entity.attr("displaytext");
loginInfo.push(key + ";#" + displaytext);
});
return loginInfo.join('!#');
} //设置人员选择器值,controlID:控件Id;userName:帐号,多个用分号隔开
function setPeopleEditorValue(pickerid, userName) {
$("#" + pickerid + "_upLevelDiv").text(userName);
if (!ValidatePickerControl(pickerid)) {
ShowValidationError();
return false;
}
var arg = getUplevel(pickerid);
var ctx = pickerid;
EntityEditorSetWaitCursor(ctx);
WebForm_DoCallback(pickerid.replace(/_/g, '$'), arg, EntityEditorHandleCheckNameResult, ctx, EntityEditorHandleCheckNameError, true);
return false;
} //清空人员选择值
function clearPeopleEditor(pickerid) {
var field = $("#" + pickerid + "_upLevelDiv");
field.find('.ms-inputuserfield').html("");
field.find("textarea:first").val("");
} //根据账号返回用户对象
function getUserByLoginName(loginName, callback) {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {
var context = new SP.ClientContext.get_current();
this._UserTemp = context.get_web().ensureUser(loginName);
context.load(this._UserTemp);
//这里用的是异步方法,第一个参数是成功后调用,第二个参数是失败后调用
context.executeQueryAsync(
Function.createDelegate(null, function () {
callback(this._UserTemp);
//var _userID = this._UserTemp.get_id();
//var _userLoginName = _UserTemp.get_loginName();
//var _userTitle = _UserTemp.get_title(); //callback(_userID + ";#" + _userLoginName + ";#" + _userTitle);
}),
Function.createDelegate(null, function () { alert("请确认是否在选人的地方都已经填入了信息"); })
);
});
} </script> </fieldset>
使用实例图:
四、人员选择器属性说明
1、AllowEmpty:是否允许为空;
2、ValidatorEnabled:开启验证;
3、SelectionSet:设置选择范围,可设置为:组,人,及Ad的安全组,如:User,DL,SecGroup,SPGroup
4、MultiSelect:是否可多选
SharePoint PeopleEditor控件使用的更多相关文章
- 从PeopleEditor控件中取出多用户并更新到列表
如果一个列表中有一个字段类型为用户或用户组,并且设置为用户,允许多值的话,那么用代码进行更新的时候就必须将这个字段的值赋成SPFieldUserValueCollection类型,以下代码即为从Peo ...
- SharePoint用户控件编写的简单介绍
转:http://www.it165.net/design/html/201204/1131.html 我们开发中,通常需要写各种各样的部件来实现我们的展示或者功能,下面就介绍下刚刚接触的QuickP ...
- SharePoint 用户控件编写的简单介绍
我们开发中,通常需要写各种各样的部件来实现我们的展示或者功能,下面就介绍下刚刚接触的QuickPart+用户控件的方式,算是自己的学习笔记,也和大家交流下心得. 1. 新建Web应用程序 2. 在项目 ...
- 界面绚丽的SharePoint仪表盘控件Nevron Gauge for SharePoint 控件详细介绍
Nevron .NET Vision 是一款用于创建独特的.强大的数据表示应用程序的最终控件,它具有超强的数据可视化性能. 整合了Nevron Chart for .NET, Nevron Diagr ...
- SharePoint 2013 如何使用TaxonomyWebTaggingControl 控件
在该文章中,我将介绍如何使用TaxonomyWebTaggingControl控件, 首先我相信您已经在SharePoint Managed Metadata Service里定义Term Sets, ...
- SharePoint 2013 新功能探索 之 标注控件
SharePoint 2013 引入了新的UI,同时也跟进了网络潮流,把应用最广泛的标注控件也引入到了SharePoint,先看两个应用 以上是两个开发当中经常会用到,下面就介绍一下如何开发相同 ...
- SharePoint 中用户控件的开发及应用
1.新建解决方案以及SharePoint项目,步骤比较简单略过,然后映射CONTROLTEMPLATES文件夹,在里面添加用户控件(仅场解决方案),如下图: 2.解决方案结构,如下图: 简单介绍一下, ...
- 在SharePoint 2010 母版页里添加自定义用户控件
在SharePoint 2010 母版页里添加自定义用户控件(译) 使用自定义用户控件的好处: 1.容易部署:2.易于控制显示或隐藏. (在使用的过程中)可能要面对的问题是:如何在用户控件里使用Sha ...
- SharePoint 2010 master page 控件介绍(4):隐藏placeholder
转:http://blog.csdn.net/lgm97/article/details/6409225 <!-- form digest 安全控件用来进行form的安全校验--> &l ...
随机推荐
- ubuntu 安装 openssh-server,xinetd,vmware tools
●安装SSH服务 ●判断是否安装ssh服务,通过如下命令:ps -e|grep ssh 1, sudo apt-get update --->软件的更新地址变了,需要更新本机的sources.l ...
- Linux常用命令 查找文件
Linux搜索命令:find / -name 'nginx' 搜索根目录下文件名为‘nginx’的文件夹 .find / -name 'nginx.conf' 搜索根目录下文件名为‘nginx.co ...
- html生成缩略图来预览解决方案
html生成缩略图来预览解决方案 一.总结 一句话总结:先将html转化为canvas,然后将canvas生成图片ajax上传到服务器,就可以了 html 转化 canvas 图片 上传 html2c ...
- codeforces 555b//Case of Fugitive// Codeforces Round #310(Div. 1)
题意:有n-1个缝隙,在上面搭桥,每个缝隙有个ll,rr值,ll<=长度<=rr的才能搭上去.求一种搭桥组合. 经典问题,应列入acm必背300题中.属于那种不可能自己想得出来的题.将二元 ...
- Spring Boot 文档
本节对 Spring Boot 的参考文档做了一个简单概述.本章节对全文的参考手册进行内容上的一些索引. 你可以参考本节,从头到尾依次阅读该文档,也可以跳过不感兴趣的内容. Spring Boot 参 ...
- 牛客网——B-栈和排序
链接:https://www.nowcoder.com/acm/contest/58/B来源:牛客网 题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组 ...
- POJ 1442 treap
裸treap. 只需增加一个size记录其儿子个数便可找到第k大数. #include <cstdio> #include <cstring> #include <cti ...
- OC MRC之 @property参数(代码分析)
第一部分 // // main.m // 04-@property参数 // // Created by apple on 13-8-9. // Copyright (c) 2013年 itcast. ...
- splunk中mongodb作用——存用户相关数据如会话、搜索结果等
About the app key value store The app key value store (or KV store) provides a way to save and retri ...
- Java NIO理解与使用
https://blog.csdn.net/qq_18860653/article/details/53406723 Netty的使用或许我们看着官网user guide还是很容易入门的.因为java ...