SPServices GetListItems将字段值返回为“undefined”

时间:2014-09-10 21:18:29

标签: sharepoint spservices

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

我在SPServices中使用CAML查询来检索列表项,然后引用" ows_ {fieldname}"像往常一样检索每个列表项的字段值。字段值报告为" undefined"对于所有项目。我五元组检查我是否指定了该字段的正确名称,并且我的查询已正确构造。

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

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

2 个答案:

答案 0 :(得分:4)

GetListItems工作的默认方式(尽管不可靠)是,如果您未在输入中指定ViewFields ,则假设返回默认列表视图上显示的所有字段。这是不可靠的。虽然你让它工作 - 现在 - 有人可以稍后出现并更改默认视图,从而打破你的甜蜜定制。游民。 :) 我建议始终在GetListItems方法中列出您感兴趣的ViewField。这样可以确保如果设置它们,您将获得它们。那就对了。您仍然可以获得具有未定义字段的行。这主要发生在未在行上设置的Lookup类型的字段上。

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

答案 1 :(得分:0)

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