要将用户名保存到人员字段中:
在我的自定义表单中提供了人员编辑器控件,并按如下方式保存了每个已解析的实体:
if (currentPeopleEditor.Entities.Count != 0)
{
SPFieldUserValueCollection userCollection = new SPFieldUserValueCollection();
for (int index = 0; index < currentPeopleEditor.ResolvedEntities.Count; index++)
{
PickerEntity ObjEntity = (PickerEntity)currentPeopleEditor.ResolvedEntities[index];
userCollection.Add(new SPFieldUserValue(objSPWeb,Convert.ToInt32(ObjEntity.EntityData["SPUserID"]), ObjEntity.Key));
}
newItem[Field.Key.ToString()] = userCollection;
}
在某些用户说遇到此异常之前,它工作得很好:“无效的查找值
查找字段包含无效数据,请检查值并重试。”
在调查中,我们发现发生此错误是因为 ObjEntity.EntityData["SPUserID"]) 返回为 null。
之所以发生这种情况,是因为要求保存一些不访问此网站集但他们是公司 AD 系统成员的用户名。