无效的数据被用来用作更新列表项 Invalid data has been used to update the list item. The field you are trying to update may be read only.
Posted on 2013-04-14 01:59 期星揽月 阅读(360) 评论(0) 编辑 收藏 举报在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对象,然后赋值。