现在,在我的程序中,我在SharePoint中创建了一个列'Person or Group'
- 允许多项选择:是。
现在在C#中,我创建了一个表单,然后从People Picker中获取数据。
我将这些数据插入列表:
像这样:{
string strName = "8;1001"; //User.Id and User.LoginName of **single** user
objItem["name"] = strName;
}
现在工作正常。但我不知道如何为多个用户插入。
我尝试用“;(分号)”分开 但它提供了无效的查找值错误。
就像这样:
{
string strName = "8;1001;2;2001"; //User.Id and User.LoginName of **2 users**
objItem["name"] = strName;
}
答案 0 :(得分:5)
以下是详细代码: -
void btnSubmit_Click(object sender, EventArgs e)
{
//ctrlpplPicker is object of PeopleEditor
string[] userarray = ctrlpplPicker.CommaSeparatedAccounts.ToString().Split(',');;
SPFieldUserValueCollection usercollection = new SPFieldUserValueCollection();
for (int i = 0; i < userarray.Length; i++)
{
SPFieldUserValue usertoadd = ConvertLoginAccount(userarray[i]);
usercollection.Add(usertoadd);
}
SPList list = SPContext.Current.Web.Lists["user tasks"];
SPListItem item = list.Items.Add();
item["Team"] = usercollection;
item.Update();
}
public SPFieldUserValue ConvertLoginAccount(string userid)
{
SPFieldUserValue uservalue;
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPUser requireduser = web.EnsureUser(userid);
uservalue = new SPFieldUserValue(web, requireduser.ID, requireduser.LoginName);
}
}
return uservalue;
}
答案 1 :(得分:2)
您需要在SharePoint列表中一次添加多个用户。用户的值可能来自Active Directory或元数据。所有用户都以逗号或分号分隔值的字符串形式。我们假设用户使用的格式低于“;
”。
string usercontrolvalue = "dhananjay,arun,anoj,patra,mub";
以下是有关这些的完整信息:
Multiple user insertion in Sharepoint list
Using the SharePoint ‘Person or Group’ field in code
您可以从中了解并实现您的功能。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以使用SPFieldUserValueCollection Class
设置多值人员字段:
SPFieldUserValueCollection value = new SPFieldUserValueCollection();
value.Add(new SPFieldUserValue(web, user1.ID, user1.Name)));
value.Add(new SPFieldUserValue(web, user2.ID, user2.Name)));
objItem["name"] = value;
objItem.Update();
user1
和user2
代表SPUser
个对象的位置。
如果您只拥有用户帐户的登录名
提示强> 要更新单个值人员字段,您只需设置用户ID:
objItem["name"] = User.ID;