有时我们需要更新一个用户到Person or Group类型的字段, 当然这个属性允许设置多个用户, 要如何才能添加新的用户到该字段,同时还不影响原始存在的值。

这里我们需要了解 SPFieldUserValueCollection类, 该类是包含user字段的所有值,而SPFieldUserValue继承了SPFieldLookupVlaue.

 1 // 获取List
 2 SPListItemCollection BGProfileCollection = SPContext.Current.Web.Lists[CSTListType.BGProfileListName].Items;
 3 
 4 // 根据条件去获取需要更新的某一条数据
 5 SPListItem BGProfileListItem = BGProfileCollection.OfType<SPListItem>().Where(a => a.GetLookupField<int>(ConstVariables.AllBGProfileColumns.ColumnBGName, 0, 0) == Convert.ToInt32(this.ddl_BGNameList.SelectedItem.Value))..FirstOrDefault();
 6 
 7 // 获取该条数据user字段的值
 8 SPFieldUserValueCollection values = (SPFieldUserValueCollection)BGProfileListItem ["MultiUser"];
 9 
10 //添加用户到该集合, 这里我使用当前用户
11 values.Add(new SPFieldUserValue(SPContext.Current.Site.OpenWeb(), SPContext.Current.Web.CurrentUser.ID, SPContext.Current.Web.CurrentUser.Name));
12 
13 // 更新该字段的值
14 BGProfileListItem["MultiUser"] = values;
15 BGProfileListItem.Update();

 

posted on 2015-09-15 15:41  琴韵之弦  阅读(455)  评论(0编辑  收藏  举报