有時咱們須要更新一個用戶到Person or Group類型的字段, 固然這個屬性容許設置多個用戶, 要如何才能添加新的用戶到該字段,同時還不影響原始存在的值。this
這裏咱們須要瞭解 SPFieldUserValueCollection類, 該類是包含user字段的全部值,而SPFieldUserValue繼承了SPFieldLookupVlaue.spa
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();