Как вставить данные в поле «Персона или группа», используя VS2010? - PullRequest
1 голос
/ 08 декабря 2011

Прямо сейчас в моей программе я создал список в SharePoint, имеющий столбец «Персона или группа»

- Разрешить несколько вариантов выбора: Да .

Теперь в C # я создал форму и извлекаю данные из People Picker.

и вставляю эти данные в список :

вот так:

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

Теперь все работает нормально.но я не знаю, как вставить для нескольких пользователей.

Я попытался сделать это, разделив символом "; (точка с запятой) ", но это выдает ошибку значения Invalid Look-up.

Просто так:

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

Ответы [ 4 ]

5 голосов
/ 25 июня 2012

Вот код детали: -

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 голосов
/ 08 декабря 2011

вам нужно добавить более одного пользователя одновременно в список SharePoint. Пользовательские значения могут поступать из Active Directory или метаданных. Все пользователи находятся в строке в виде значения, разделенного запятой или точкой с запятой. Предположим, что пользователи находятся в формате ниже, так как вы разделяете их с помощью ;.

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

Вот полная информация о них: вставка нескольких пользователей в список Sharepoint
Использование поля «Персона или группа» SharePoint в коде

Вы можете извлечь из этого идею и реализовать свои функции.

0 голосов
/ 08 декабря 2011

Вы можете использовать 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 объекты.

Если у вас просто есть логин учетных записей пользователей

Совет: Чтобы обновить однозначное поле персонажа, вы можете просто установить идентификатор пользователя:

objItem["name"] = User.ID;
0 голосов
/ 08 декабря 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...