如何在SharePoint中利用Jquery Chosen创建新的人员选择器

基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻烦,而且非常笨拙,非常不友好,特别是对呆在政府部门的老爷们,要让他们手动输入人员,简直就是痴心妄想。总之一句话,越简单越好。

为了让客户满意,必须要对人员选择器进行改造,原生的PeopleEditor彻底抛弃。只能另辟蹊径,寻找适合的JQuery插件,创建新的人员选择器,分析了一下需求,可以归纳新的人员选择器必须支持如下情况:

支持人员的多选,比如像会议、通知需要对多人进行发送,当然也要支持删除。

对于单选的人员选择器,可以删除选中的人员。

不管单选还是多选,支持Jquey AutoComplete那样索引功能。

找来找去,发现Jquery Chosen功能十分强大,完全满足我的需求,更多的功能参照Chosen官网:

http://harvesthq.github.io/chosen/

利用Jquery Chosen进行改造

多选的人员选择器

支持多选,点击X即可取消选中,当然还支持索引,如下所示:

配置也是十分简单,首先你的有一个Select,譬如:

 <asp:DropDownList runat="server" ClientIDMode="Static" ID="ddlPeopleChosen" data-placeholder="选择与会者..."class="chzn-select" multiple style="width:397px;" ></asp:DropDownList>

注意下:data-placeholder意为着未选人员时的默认文本,multiple意味着支持多选。

接下来,需要对其添加数据源,注意,对于单人员选择器,Chosen作者说如果要显示默认的文本提示,需要加入一个空的Option到Select中(第一个)。

注意:我的人员不是从AD中取出,而是我们有一个存放人员的List(人事档案),为了确保该List的人员都可以登陆OA,特意和Web.AllUser中进行比较,当然也可以不必要,这样做保险点。

public static void GetFromCache(SPWeb _currentWeb)
        {
            #region 从缓存中读
            if (System.Web.HttpContext.Current.Cache["peopleList"] == null)
            {
                //People 集合:将SharePoint中的User作为数据源集合加入DropDownList中
                List<People> peopleList = new List<People>();
                //Note: on single selects, the first element is assumed to be selected by the browser.
                //To take advantage of the default text support,
                //you will need to include a blank option as the first element of your select list.
                peopleList.Add(new People());
                People p = null;
                SPList employeeList = _currentWeb.Site.AllWebs["rsgl"].Lists["人事档案"];
                //获取所有可访问站点的用户
                SPUserCollection userCollection = _currentWeb.AllUsers;
                //转换为List集合
                List<SPUser> listUsers = userCollection.Cast<SPUser>().ToList();
                foreach (SPListItem item in employeeList.Items)
                {
                    string displayName = item["Title"].ToStringOrEmpty();
                    //循环便利获取SPUser
                    foreach (SPUser user in listUsers)
                    {
                        if (displayName == user.Name)
                        {
                            string loginName = user.LoginName;
                            p = new People { LoginName = loginName, DisplayName = displayName };
                            peopleList.Add(p);
                        }
                    }
                }

                System.Web.HttpContext.Current.Cache["peopleList"] = peopleList;
            }
            #endregion

        }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索list
, sharepoint
, 选择
, 支持
, jquey
, jquery获取多选
Chosen
chosen jquery、chosen.jquery.js、jquery chosen api、chosen.jquery.min.js、chosen.jquery.js官网,以便于您获取更多的相关知识。

时间: 2024-09-17 04:12:52

如何在SharePoint中利用Jquery Chosen创建新的人员选择器的相关文章

SharePoint中如何利用Jquery Chosen创建新的人员选择器

基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻烦,而且非常笨拙,非常不友好,特别是对呆在政府部门的老爷们,要让他们手动输入人员,简直就是痴心妄想.总之一句话,越简单越好. 为了让客户满意,必须要对人员选择器进行改造,原生的PeopleEditor彻底抛弃.只能另辟蹊径,寻找适合的JQuery插件,创建新的人员选择器,分析了一下需求,可以归纳新的人员选择器必须支持如下情况: 支持人员的多选,比如像会议.通知需要对多人进行发送,当然也要支持删除. 对于

服务器-请问如何在linux中利用springmv提供一个树结构的数据

问题描述 请问如何在linux中利用springmv提供一个树结构的数据 利用该数据完成一个jquery树插件,要求树的数据在服务器端提供缓存功能!

asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码

 本篇文章主要是对asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码进行了介绍,需要的朋友可以过来参考下,需要对大家有所帮助  代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxJson.aspx.cs" Inherits="AjaxJson" %> <!DOCTYPE html PUBLIC &quo

统计及利用查询结果创建新表

一.在SELECT语句中,可以使用集合函数.行集合函数.GROUP BY子句和COMPUTE子句对查询结果进行统计.GROUP BY子句可与行集合函数或集合函数一起使用,而COMPUTE子句只能与行集合函数一起使用. 在SELECT语句中,也可以单纯使用集合函数进行统计,这时它将所有符合条件的数据统计放到一起,形成一行统计数据,这种统计方法叫做标量统计. 例:统计"business"类图书的平均价格 SELECT 'average price'=AVG(price) FROM titl

如何在SharePoint中创建一个简单的Visio Web部件图

Visio有许多强大的Mash-up混聚功能,使它可以轻松集成到SharePoint 2010中. 1. 打开Visio 2010,创建新的ITIL图. 2. 绘图如下: 3. 点击后台选项卡(左上角). 4. 点击另存为,选择位置,点击确定,输入Keyword,点击确定.

如何在LINUX中利用wu-ftp架设一台FTP服务器

FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法http://www.aliyun.com/zixun/aggregation/6579.html">用户使用: 另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件.下面,小编就给大家介绍一下如何在LINUX系统中利用wu-ftp架设一台FTP服务器. 一.选择和安装FTP服务器软件 如果你在安装LINUX系统的时候,在选择启动进程的时候选

如何在SharePoint中创建 Lookup 类型的Site Column解决跨站问题

在某些情况下,我们需要去引用其他List中的数据,比如在网站集(Site Collection)上有个List叫Country,在其子网站(WebSite)有个List叫Employee,如果要在子Site上的Employee去引用Country中的数据,一般我们会在Site Collection上创建一个网站栏(Site Column).这是一种解决方案.还有一种解决方案,我们也可以在项目中创建一个Lookup 类型的 Site Column,其Scope为Site,顺着思路,我理所应当的创建

如何在SharePoint中使用LINQ

LINQ是一种有效且高效的查询数据的方法.使用SPMetal你可以为LINQ准备SharePoint列表.下面讲解如何准备你的列表,并创建使用LINQ的应用程序. 1. 打开命令行(管理员身份运行). 2. 导航到c:\Program Files\Common Files\Microsoft Shared\web server extensions\14\bin,并输入下面命令(确保用你自己的服务器名代替) spmetal.exe /web:http://<servername> /code:

JavaScript中利用jQuery绑定事件的几种方式小结_jquery

开发过程中经常要给DOM元素添加一些事件,下面介绍几种方式: 先写几个好看的button //引入JQuery <script type="text/javascript" src="jquery-1.8.3.min.js"></script> <span id="tips"></span> <input type="button" id="btn1"