无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
在SharePoint开发中,当我们对列表项进行添加、删除、修改的时候,更多的只注意到了常见Columns类型,如“Single line of text”,“Multiple lines of text”,“Choice (menu to choose from)”等等,而这些Columns的值很好处理,在代码中就是String、Int、DateTime类型,只要对应上了就OK了。
但是我们很有可能会不小心或这说错误的给一个类型的Column赋了错误的值,这个Column的类型就是“Person or Group”。
很多时候,我们看到或操作的“Person or Group”类型的值就是DisplayName或LoginName,直觉判断就是String类型的值,但是,如果在给“Person or Group”类型的Column赋值时一定要小心:“Person or Group”的数据类型是“SPUser”
如下所示:
在这里,直接给“Person or Group”类型的Column赋值为Stirng类型的了,才会酿成此祸。立马修改代码,如下图所示:
非常完美,代码执行通过,没有问题。
总结:
当我们对一个类型为“Person or Group”的Column赋值时,一定要将“SPUser”赋给它,可以通过SharePoint内置方法直接获取SPUser对象,也可以将”Domain\\UserName”通过SPWeb.EnsureUser()方法转换为SPUser对象,然后赋值。