【问题标题】:SPServices GetListItems returning field values as "undefined"SPServices GetListItems 将字段值返回为“未定义”
【发布时间】:2014-09-10 21:18:29
【问题描述】:

我遇到了一个问题,我没有找到解决方案,但无意中自己找到了解决方案。所以我想在这里为可能遇到相同问题的其他人记录这一点。

我在 SPServices 中使用 CAML 查询来检索列表项,然后像往常一样引用“ows_{fieldname}”来检索每个列表项的字段值。所有项目的字段值都报告为“未定义”。我五次检查我指定了正确的字段名称,并且我的查询构造正确。

我最终发现我试图引用的字段没有显示在列表的默认视图中。一旦我更改列表属性以在默认视图中包含字段,我的 javascript 中就会返回正确的字段值。

我不知道 Sharepoint 的基础有多少工作,但我对我的发现感到非常惊讶,因为这意味着 SPServices GetListItems 方法从列表的默认视图中获取其数据,而不是从实际的底层列表中获取数据。我意识到我的这种解释可能是错误的,但我想其他人可能会遇到同样的问题。

【问题讨论】:

    标签: sharepoint spservices


    【解决方案1】:

    虽然不可靠,但默认的 GetListItems 工作方式是假设返回默认列表视图中显示的所有字段如果您没有在输入中指定 ViewFields。这是不可靠的。虽然你让它工作了 - 现在 - 有人可能会稍后出现并更改默认视图,从而破坏你的甜蜜定制。真可惜。 :) 我建议始终在 GetListItems 方法中列出您感兴趣的 ViewFields。这样可以确保您在设置它们时会得到它们。这是正确的。您仍然可以获得未定义字段的行。这主要发生在未在行上设置的查找类型的字段上。

    希望这可以帮助您了解正在发生的事情。多年来,我围绕 SPServices 创建了自己的包装器,以确保我获得对所有请求字段的引用,即使它们不在 Sharepoint 的响应中。

    【讨论】:

    • 谢谢你,保罗!这对我来说更有意义了。我想我的问题是由于我自己的无知。哦,好吧——其他人可能会犯我犯的同样错误,现在他们会找到正确的方法来解决它。谢谢!
    • 很高兴我能帮助 Ryk。当我第一次开始使用#SPServices 时,我在几个列表中也对此感到厌烦。
    【解决方案2】:

    使用 SPServices 的 GetListItems 方法时,请确保您从列表中引用的任何字段都包含在列表的默认视图中,否则将返回未定义的值。

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多