jmo*_*era 2 sharepoint sharepoint-2010
这是完整的错误:
Invalid data has been used to update the list item. The field you are trying to update may be read only.
Run Code Online (Sandbox Code Playgroud)
我基本上尝试更新Sharepoint中的日历事件.
首先,我得到以下内容.
ClientContext clientContext = new ClientContext(deptUrl);
Web web = clientContext.Web;
List list = web.Lists.GetByTitle(deptCal);
clientContext.Load(list);
CamlQuery query = new CamlQuery();
query.ViewXml = "<View><Query><Where><IsNull><FieldRef Name='EndDate' /></IsNull></Where></Query><RowLimit>1</RowLimit></View>";
ListItemCollection allEventIds = list.GetItems(query);
clientContext.Load(allEventIds,
items => items.Include(
item => item["EventID"],
item => item["EventDate"],
item => item["EndDate"]
));
clientContext.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)
接下来循环:
foreach (var item in allEventIds)
{
Console.Write("EventId: {0} StartDate: {1}\n", item.FieldValues["EventID"], item.FieldValues["EventDate"]);
if (item.FieldValues.ContainsKey("EventDate"))
{
object objValue = item.FieldValues["EventDate"];
if (objValue != null)
{
clientContext.Load(item);
DateTime endDate = DateTime.Parse(objValue.ToString());
item["EndDate"] = endDate; //Updated this!
}
}
item.Update();
}
Run Code Online (Sandbox Code Playgroud)
最后:
clientContext.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)
如果我尝试更新ListItem中的任何其他项[x]工作正常.当我尝试更新"EndDate"时.我收到以下错误:
Microsoft.SharePoint.Client.ServerException was unhandled
Message="Invalid data has been used to update the list item. The field you are trying to update may be read only."
Source="Microsoft.SharePoint.Client.Runtime"
ServerErrorCode=-2147024809
ServerErrorTypeName="System.ArgumentException"
ServerStackTrace=""
StackTrace:
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()
at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb)
at Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery()
at Microsoft.SharePoint.Client.ClientRuntimeContext.ExecuteQuery()
at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
at DisplayOnCalendarUtility.Program.Main(String[] args) in C:\Projects\DisplayOnCalendarUtility\DisplayOnCalendarUtility\Program.cs:line 61
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Run Code Online (Sandbox Code Playgroud)
Sharepoint就是这样连线的.当您自己更新EndDate时,它将给出上面列出的错误.解决方案是一起更新EventDate和EndDate.
DateTime startDate = DateTime.Parse(objValue.ToString());
item["EventDate"] = startDate;
item["EndDate"] = startDate; //Or Any other date you want to set to.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6876 次 |
| 最近记录: |