Insert Multiple User in SharePoint list

本文详细解释了如何在SharePoint列表中插入多个用户。通过使用字符串数组、Active Directory 或元数据来获取用户值,并将其转换为SPFieldUserValue格式。演示了将这些用户插入到类型为Person或Group的SharePoint列表列中。

Objective

In this article, I am going to explain, how to insert multi user or more than one user in Share point list.

About SharePoint list where value would be inserted

  1. There is a list called TestingUser.
  2. There is one column in list called UserTest.
  3. This column is of type Person or Group.
  4. Allow multiple selections are true.
  5. Allow selection is set to People and Group.


TestingUser list looks like below,

1.gif

How to Insert?

Let us suppose, you need to add more than one user at single time in SharePoint List. Users' values may come from an Active Directory or metadata. All the users are in a string as comma or semicolon separated value. Let us suppose users are in below format.

string
usercontrolvalue = "dhananjay,arun,anoj,patra,mub";

We need to inert these multiple users in a column of type People or Group in SharePoint list.

Step 1

First we need to split name of all the users from the string. Since in our case users are comma separated so below code will make a string array with users as value at different index.

string
[] userarray = usercontrolvalue.Split(',');

Step 2

Now we need to convert users as string to SPFieldUserValue. Below function is taking user name as string and converting that into SPFieldUserValue.

_Web variable is denoting current web where List is part of.

public
SPFieldUserValue ConvertLoginName(string userid)
{
SPUser requireduser = _web.EnsureUser(userid);
SPFieldUserValue uservalue = new SPFieldUserValue(_web, requireduser.ID, requireduser.LoginName);
return uservalue;
}

Step 3

We need to make instance of SPFieldUserValueCollection

SPFieldUserValueCollection
usercollection = new SPFieldUserValueCollection();

Step 4

For all the user; we need to convert that as SPFieldUserValue then add that them to SPFieldUserValueCollection instance

for
(int i = 0; i < userarray.Length; i++)
{
SPFieldUserValue usertoadd = ConvertLoginName(userarray[i]);
usercollection.Add(usertoadd);
}

Only we need to perform above said task. For your reference entire code as below,

Entire code


using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Microsoft.SharePoint;
namespace TestingMultipleUsre
{
public partial class _Default : System.Web.UI.Page
{
SPWeb _web;
SPSite _site;
SPList
myList
protected void Page_Load(object sender, EventArgs e)
{
string usercontrolvalue = "dhananjay,arun,anoj,patra,mub";
_site = new SPSite("http://adfsaccount:2222/");
_web = _site.OpenWeb();
myList = _web.Lists["TestingUser"];
_web.AllowUnsafeUpdates = true ;
myList = _web.Lists["TestingUser"];
SPListItem item = myList.Items.Add();
SPFieldUserValueCollection usercollection = new SPFieldUserValueCollection();
string[] userarray = usercontrolvalue.Split(',');
for (int i = 0; i < userarray.Length; i++)
{
SPFieldUserValue usertoadd = ConvertLoginName(userarray[i]);
usercollection.Add(usertoadd);
}
item["UserTest"] = usercollection;
item.Update();
}
public SPFieldUserValue ConvertLoginName(string userid)
{
SPUser requireduser = _web.EnsureUser(userid);
SPFieldUserValue uservalue = new SPFieldUserValue(_web, requireduser.ID, requireduser.LoginName);
return uservalue;
}
}
}

Note
:
Make sure all the users; you are adding are user of the Sharepoint.

 

Reference:

SPWeb.EnsureUser 方法 (Microsoft.SharePoint)

Windows SharePoint Services 3
 
此主题尚未评级 - 评价此主题
 
Checks whether the specified login name belongs to a valid user of the Web site, and if the login name does not already exist, adds it to the Web site.

 

命名空间: Microsoft.SharePoint
程序集:Microsoft.SharePoint (在 microsoft.sharepoint.dll 中)
C#
VB
复制
public SPUser EnsureUser (
	string loginName
)

转载于:https://www.cnblogs.com/csts/archive/2012/05/04/2482170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值