当前位置: 首页 > 面试题库 >

将SharePoint SOAP与jQuery GetListItems结合使用-简单但无法解决!

锺博耘
2023-03-14
问题内容

我试图将SharePoint列表加载到无序列表中,以便创建一个简单的搜索功能(Sharepoint Search太可怕了)。我借用和修改的代码如下:

$(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"/>

它按原样填充列表,但是所有项目的名称均为“ undefined”。我尝试删除空格等都无济于事,当我将列表更改为“任务”列表时,它工作正常。

一直盯着AGES。您可以提出的任何建议将不胜感激!我敢肯定,这太小了,我无法解决!

谢谢!


问题答案:

您是否已验证引用了正确的字段名称?

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

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

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

获取字段名称的另一种方法是导航到列表设置,然后单击感兴趣的字段的名称。检查URL并查找名为的querystring参数&Field。它将泄露该字段的内部名称。如果您使用的是Internet
Explorer,则此值将为“ URL编码”(一个简单的在线解码器可以帮助解密该值),但是,如果您使用Firefox,则会看到该值未编码。

将正确的字段名称插入CAML查询中,然后再旋转一次。



 类似资料:
  • 我有这个导入在我的文件app.spec.ts: 这导致了这个Typescript错误 。/app.ts确实存在,但是我没有编译。ts文件转换为. js文件。我一编译好。ts文件转换为. js文件,错误就消失了。 但是,由于eslint应该使用typescript,所以它应该使用。ts而不是. js。 我还在我的配置文件中添加了打字稿信息: 如何配置eslint以使其尝试用. ts而不是. js解析

  • 问题内容: 我在SO上发现了其他几个有关JavaMail API和通过SMTP服务器发送邮件的问题,但是没有一个使用TLS安全性进行讨论。我正在尝试使用JavaMail通过我的工作SMTP邮件服务器向我发送状态更新,但是它需要TLS,而且我在网上找不到任何有关如何使用JavaMail访问需要TLS加密的SMTP服务器的示例。有人能帮忙吗? 问题答案: 实际上,我们的产品中确实有一些通知代码,如果有

  • 我已经阅读了一些关于SaaS/PaaS/IaaS的信息,我在想: 如果我提供了一个SaaS应用程序,我的客户能否使用PaaS开发和部署他自己的应用程序,PaaS将使用一些API与我的SaaS应用程序交互?还是我对云服务的理解有误?

  • 问题内容: 我有一个非常简单的json,无法使用simplejson模块进行解析。再生产: 结果: 任何人都知道出了什么问题以及如何正确解析上面的json吗? 在那里编码的字符串是: Variées PS我使用python 2.5 非常感谢! 问题答案: 那是完全正确的;包含无效的转义符,JSON标准不允许后面跟数字。 无论产生什么代码,都应该修复。如果那是不可能的,那么您将需要使用正则表达式删除

  • 问题内容: 谁能给我指出一个完整的示例,而 不是 在App Engine上使用OAuth2和Flask对Google帐户进行身份验证? 我试图让用户授予对Google日历的访问权限,然后使用该访问权限从日历中检索信息并对其进行进一步处理。我还需要存储并稍后刷新OAuth2令牌。 我看过Google的oauth2client库,可以开始检索授权代码了,但是我从那里有点迷失了。通过查看Google的O

  • 问题内容: TextMate似乎使用了我假定的内置Python版本(sys.path不起作用)。您如何配置它以使用3.1?我已经安装了3.1软件包,并且可以将IDLE用于交互式会话,但是现在需要使用TextMate。 谢谢 问题答案: TextMate使用变量的值来查找Python解释器的路径。一个好的解决方案是利用TextMate的能力来定义变量(例如基于每个项目): 打开一个新的或现有的Tex