2011-12-08 46 views
1

現在在我的計劃,我在SharePoint中做了一個列表具有列「個人或羣組」如何使用VS2010在'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

任何提示?我會試一試。 – nirav

回答

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

你可以從這個思路走,可以實現你的功能。

+0

很好的解釋。它運行良好。並減少了很多東西。 – nirav

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(); 

user1user2代表SPUser對象。

如果你只是讓用戶的登錄名佔

提示: 要更新你可以設置用戶ID單個值人場:

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; 
} 
相關問題