Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查代理中现有列表上的字段时,无法更新sharepoint项目_Sharepoint - Fatal编程技术网

检查代理中现有列表上的字段时,无法更新sharepoint项目

检查代理中现有列表上的字段时,无法更新sharepoint项目,sharepoint,Sharepoint,我在委托中有下一个创建字段的代码 delegate(SPList list) { list.Fields.Add(...); //I teared off the other same strings } 我用下一种方法调用了这段代码 modifyFunction.Invoke(list); //modifyFunction is a previous delegate, that was declared like //delegate void ModifyList(S

我在委托中有下一个创建字段的代码

delegate(SPList list)
{
    list.Fields.Add(...);
    //I teared off the other same strings 
}
我用下一种方法调用了这段代码

modifyFunction.Invoke(list);

//modifyFunction is a previous delegate, that was declared like
//delegate void ModifyList(SPList list); 
所以,当我尝试更新列表中的项目时,一切都很好。 但我必须很快动态地将字段添加到列表中。所以,我改变了我的委托

delegate(SPList list)
{
    CheckMethod(list);
}

void CheckMethod(SPList list)
{
    if (!list.Fields.ContainsField(...))
    {
        list.Fields.Add(...);
    }
}
在这个修改之后,当试图更新这个列表中的一个项目时,代码中再也没有任何修改了。我遇到了下一个异常

Invalid data has been used to update the list item. The field you are trying to update may be read only

像SPWeb.AllowUnsafeUpdates或SPSecurity.RunWithElevatedPrivileges这样的决定没有给出任何积极的结果。诀窍在哪里?我将感谢任何帮助。多谢各位

通过分析您提供的代码部分,有点难猜测您到底在做什么

但我猜你是从列表中加载了这个项目 然后通过添加新字段来修改列表。 然后更新项目。 现在,问题是,我猜,在列表更改后,您仍然有相同的项目引用。 要解决此问题,您必须在列表上进行修改后重新加载该项,然后在此项上调用update