0

我已经把头撞在墙上太久了。

我一直在为我的 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 结束时可能有某种格式的日期,但我认为由于您可以在网站本身上以标准字符串格式输入日期,因此完全可以选择使用字符串。也许不是?如果您还需要什么,请告诉我。

谢谢!

(旁注——在过去的测试中,我认为我得出的结论是每个字段都需要自己的方法部分,我认为这很奇怪。即使它正在更新一个项目,它也需要区分。这只是侥幸吗?我可以把所有该领域采用一种方法?)

4

2 回答 2

0

在自定义列表的 ItemUpdating (SPItemEventReceiver) 中,为了更新自定义日期时间字段的日期(DateOnly 模式),我被迫使用:

SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Today)

处理日期的奇怪方式;)

于 2012-08-02T11:51:09.183 回答
0

...是的。愚蠢的错误。

http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems(v=office.12).aspx

或者,对于那些不喜欢点击链接的在家玩的人:2006-1-11T09:15:30Z

我确实尝试将我的日期转换为这种格式,但显然它不够具体。

这只是成功了。希望遇到这个愚蠢障碍的其他人会发现这很有用。

就这样。:)

于 2012-08-01T18:26:53.057 回答