【问题标题】:How to insert data in 'Person or Group' field using VS2010?如何使用 VS2010 在“个人或组”字段中插入数据?
【发布时间】:2014-08-11 22:57:56
【问题描述】:

现在在我的程序中,我在 SharePoint 中创建了一个列表,其中包含 'Person or Group'

-允许多选:

现在我在 C# 中创建了一个表单,并从 People Picker 中获取数据。

我正在将该数据插入 列表

像这样:

{
    string strName = "8;1001";    //User.Id and User.LoginName of **single** user 
    objItem["name"] = strName;
}

现在一切正常。但我不知道如何为多个用户插入。

我试过用“;(分号)”分隔 但它给出了 Invalid Look-up value 错误。

就像这样:

{
    string strName = "8;1001;2;2001";    //User.Id and User.LoginName of **2 users**
    objItem["name"] = strName;
}

【问题讨论】:

  • 有什么提示吗?我试试看。

标签: c# asp.net sharepoint


【解决方案1】:

这里是详细代码:-

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;
}

【讨论】:

    【解决方案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

    您可以从中汲取灵感并实现您的功能。

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      您可以使用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();
      

      其中user1user2 代表SPUser 对象。

      如果您只有用户帐户的登录名

      提示: 要更新单值人员字段,您只需设置用户 ID:

      objItem["name"] = User.ID;
      

      【讨论】:

        猜你喜欢
        • 2018-03-20
        • 1970-01-01
        • 2021-11-25
        • 2019-01-14
        • 1970-01-01
        • 1970-01-01
        • 2020-01-03
        • 2018-12-20
        • 2017-10-01
        相关资源
        最近更新 更多