我已经把头撞在墙上太久了。
我一直在为我的 Sharepoint 服务器(2007 年,所以没有客户端对象模型)使用 lists.asmx Web 服务,并且我已经能够成功更新服务器上每个所需的项目字段......日期除外。我指的不是只读日期。只是可以为网站本身的列表项以 mm/dd/yyyy 格式输入的日期。
我在 C# 中,如果有人能看到对我的 CAML 的潜在简单更正(这是问题所在,我很确定),我将不胜感激。
batchElementGlobal.InnerXml = "<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='Title'>" + tempExperiment.ProjName + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='Experiment_x0020_Lead'>" + tempExperiment.ProjLead + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='Technology_x0020_Partner'>" + tempExperiment.TechPartner + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='IT_x0020_Functional_x0020_Area'>" + tempExperiment.FunctionalArea + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='Start_x0020_Date'>" + strProjStartDateTime + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='End_x0020_Date'>" + strProjEndDateTime + "</Field></Method>" +
"<Method ID='1' Cmd='Update'>" +
"<Field Name='ID'>" + GlobalVariables.ID + "</Field>" +
"<Field Name='Read_x0020_Out_x0020_Date'>" + strProjReadoutDateTime + "</Field></Method>" +
(这是一个精简的版本。想展示我如何格式化多字字段以及它们的工作原理。strProjXXXDateTime 字符串都采用相同的格式。例如:“6/18/2012”)
SharePoint 结束时可能有某种格式的日期,但我认为由于您可以在网站本身上以标准字符串格式输入日期,因此完全可以选择使用字符串。也许不是?如果您还需要什么,请告诉我。
谢谢!
(旁注——在过去的测试中,我认为我得出的结论是每个字段都需要自己的方法部分,我认为这很奇怪。即使它正在更新一个项目,它也需要区分。这只是侥幸吗?我可以把所有该领域采用一种方法?)