gpt4 book ai didi

ajax - 将 SharePoint SOAP 与 jQuery GetListItems 一起使用 - 简单但无法解决!

转载 作者:行者123 更新时间:2023-12-01 01:11:07 24 4
gpt4 key购买 nike

我正在尝试将 SharePoint 列表加载到无序列表中,以便我可以创建一个简单的搜索功能(Sharepoint 搜索太糟糕了)。我借用并改编的代码如下:

$(document).ready(function() {
var soapEnv =
"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
<soapenv:Body> \
<GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
<listName>Metric_Audit</listName> \
<viewFields> \
<ViewFields> \
<FieldRef Name='ReportName' /> \
<FieldRef Name='Metric Name' /> \
</ViewFields> \
</viewFields> \
</GetListItems> \
</soapenv:Body> \
</soapenv:Envelope>";

$.ajax({
url: "http://teamspace.intranet.group/sites/CSI/ID/DB/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
complete: Result,
contentType: "text/xml; charset=\"utf-8\""
});
});


function Result(xData, status) {
$(xData.responseXML).find("z\\:row").each(function() {
var liHtml = "<li>" + $(this).attr("ows_ReportName") + "</li>";
$("#MetricsUL").append(liHtml);
});
}
});

<ul id="MetricsUL"/>

它按应有的方式填充列表,但所有项目的名称均为“未定义”。我尝试删除空格等,但无济于事,当我将列表更改为“任务”列表时,它工作得很好。

我已经盯着这个看了好久了。您能提出的任何建议将不胜感激!我确信这是一些小事,我无法解决!

谢谢!

最佳答案

您是否确认引用了正确的字段名称?

您在 soapEnv 中定义的 CAML 查询需要使用字段的内部名称,而不是其显示名称。我保证Metric Name不正确;它可能类似于 Metric_x0020_Name 或类似的内容。

如何确定字段的内部名称?有几种方法。

让我向您介绍一个名为 U2U CAML Query Builder 的出色实用程序。这应该存在于每个 SharePoint 开发人员的工具箱中。启动它,将其指向正确的列表(如果您不在服务器上,则通过 SharePoint Web 服务连接),它将允许您使用字段的显示名称构建 CAML 查询,但会生成正确的基础 CAML你。它也非常适合构建复杂的过滤器和 bool 逻辑,此外它还可以让您运行查询并获得即时反馈。

获取字段名称的另一种方法是导航到列表设置,然后单击您感兴趣的字段名称。检查您的 URL 并查找名为 &Field 的查询字符串参数>;它将泄露该字段的内部名称。如果您使用的是 Internet Explorer,则该值将是 URL 编码的(简单的 online decoder 可以帮助破译该值),但如果您使用 Firefox,您将看到该值未编码。

将正确的字段名称插入您的 CAML 查询中,然后再次尝试。

关于ajax - 将 SharePoint SOAP 与 jQuery GetListItems 一起使用 - 简单但无法解决!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287384/

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