0

我想知道是否可以使用 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>

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

4

2 回答 2

1

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

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

您应该查看 SPServices 文档和论坛以获取大量示例。GetListItems 的文档应该专门解决​​您对其使用的需求......

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

于 2012-12-14T01:50:45.530 回答
1

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

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

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

$().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);
      });
   }
});
于 2012-12-17T12:54:58.453 回答