是否可以使用GetListItems执行查询以使用SPServices从共享点列表中检索特定项?

时间:2012-12-13 17:19:50

标签: spservices

我想知道是否可以使用GetListItems使用特定值查询列表并仅返回与该查询匹配的行?

目前,我可以使用GetListItems检索列表中的所有项目,或特定视图中的所有项目,但我无法进一步过滤。

我很欣赏我可以对返回的项目集执行查询,但是想知道是否有可能(也许更快)让sharepoint为我执行查询。

在yoursharepoint / _vti_bin / Lists.asmx?op = GetListItems页面我看到了,

  <query>
    <xsd:schema>schema</xsd:schema>xml</query>
  <viewFields>
    <xsd:schema>schema</xsd:schema>xml</viewFields>
  <rowLimit>string</rowLimit>
  <queryOptions>
    <xsd:schema>schema</xsd:schema>xml</queryOptions>

但不知道如何/可以使用这些参数。

2 个答案:

答案 0 :(得分:1)

简短回答:是的,可以将它与各种过滤器一起使用

过滤语言(XML)称为CAML ..

您应该查看大量示例的SPServices文档和论坛。 GetListItems的文档应该特别满足您对其使用的需求....

本指南将帮助您开始在CAML中构建查询:http://sharepointmagazine.net/articles/writing-caml-queries-for-retrieving-list-items-from-a-sharepoint-list

答案 1 :(得分:1)

是的,您可以调用GetListItems操作并传递CAMLQuery参数。以下是html

<div id='result'></div>

我正在寻找与术语“Bob Tester”相匹配的所有列表项目。在标题列中使用以下SPServices调用。

$().SPServices({
   operation: "GetListItems",
   async: false,
   listName: "MyCustomList",
   CAMLQuery: "<FieldRef Name='Title'></FieldRef><Value Type='Text'>Bob Tester</Value>",
   CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
   completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
         var foundItem = "<div>" + $(this).attr("ows_Title") + " matches</div>";
         $("#result").append(foundItem);
      });
   }
});