gpt4 book ai didi

c# - SharePoint - 如何使用列表 Web 服务插入新项目?

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:59 26 4
gpt4 key购买 nike

我有一个包含 2 个文本字段和一个选择字段的列表。如何使用 Lists.asmx Web 服务插入新项目?我可以对 lists.asmx 服务进行 Web 引用,因此您可以假设这是已知的。

我想要一个完整的例子,包括代码和 CAML 查询的 XML。理想情况下,示例将使用 C#。

最佳答案

使用列表 Web 服务将项目插入 SharePoint 列表确实很棘手。由于此方法的形式为:XML 输入,XML 输出,因此很难获得正确的参数。

首先您应该看一下列表定义。可以使用方法 GetList() 检索它,如下所示:

XmlNode listXml = sharePointLists.GetList(listName);
File.WriteAllText("listdefinition.xml", listXml.OuterXml);

此处重要的是字段的名称及其数据类型。字段名称永远不会与您在 SharePoint GUI 中看到的名称相同。一个很好的例子是用于列表第一个字段的标题字段。

现在您知道了,您可以创建查询以转到 SharePoint。一个例子:

<Batch OnError="Continue">
<Method ID="1" Cmd="New">
<Field Name="Title">Abcdef</Field>
<Field Name="Project_x0020_code">999050</Field>
<Field Name="Status">Open</Field>
</Method>
</Batch>

Batch 元素是 XML 的根元素。在里面你可以放不同的方法。这些应该有一个唯一的 ID(用于向您报告错误)和一个命令,例如可以是“新建”或“更新”。在 Method 内部,放置指定每个字段值的 Field 元素。例如,Title 字段获得值“Abcdef”。请小心使用 GetList() 返回的确切名称。

要在 SharePoint 上执行查询,请使用 UpdateListItems() 方法:

XmlNode result = sharePointLists.UpdateListItems(listDefinition.Name, updates);

返回值是一个包含每个更新状态的 XML 片段。例如:

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<Result ID="1,New">
<ErrorCode>0x00000000</ErrorCode>
<z:row ows_ContentTypeId="0x010036F3F587127F1A44B8BA3FEFED4733C6"
ows_Title="Abcdef"
ows_Project_x0020_code="999050"
ows_Status="Open"
ows_LinkTitleNoMenu="Abcdef"
ows_LinkTitle="Abcdef"
ows_ID="1005"
...
xmlns:z="#RowsetSchema" />
</Result>
</Results>

您可以解析它并查看 ErrorCode 以了解哪些方法失败了。

在实践中,我创建了一个包装器类,它为我处理所有脏细节。不幸的是,这是我的雇主所有,所以我不能与你分享。

此包装类是内部实用程序的一部分,用于从我们的项目数据库中检索信息并将其发布到 SharePoint。因为是上类时间开发的,所以不能发在这里。

关于c# - SharePoint - 如何使用列表 Web 服务插入新项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/85392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com