2012-02-01 99 views
1

我正在使用php和cam从sharepoint检索列表,只是它似乎带回了一个最小列表,我想知道如何设置列表视图来显示所有列表项目,而不是默认的最小列表。我现在是分享点的专家,这是我第一次使用caml,因此原谅我在这个问题上的不高兴。Sharepoint Caml

这里是我的查询

<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
      <listName>'.$list.'</listName> 
      <rowLimit>'.$limit.'</rowLimit> 
      '.$queryXML.' 
      <queryOptions xmlns:SOAPSDK9="http://schemas.microsoft.com/sharepoint/soap/" >    
       <QueryOptions/> 
      </queryOptions> 
     </GetListItems>' 

我填好单子,并限制变量和它带回从SharePoint默认的列表视图,但我想补充要么只是带回一切都在列表的功能或者告诉它列带回,但我有一点没有运气您的答复提前在互联网上:(搜索这

感谢

回答

3

你应该通过检查Web服务的文档开始方法在List.GetListItems。您需要为ViewFields参数提供您想要返回的字段。

创建CAML查询并不是心存隐晦。有很多不一致之处,这种语言被用于许多不相关的任务。从本地对象模型执行CAML查询与调用Web服务稍有不同。幸运的是,U2U创建了CAML Query Builder,它允许您通过选择您想要连接的方法(您的案例中的Web服务),列表,字段,过滤和排序条件来创建CAML查询。

如果您的目标是SharePoint 2010,则可能需要避免(令人尊敬的)Web服务并使用REST/OData API。 OData是一个类似于GData的API,用于访问各种数据源,这些数据源允许轻松筛选,并且最重要的是对所有数据源统一。您可以直接从代码中调用REST API,也可以使用OData SDK for PHP为您的列表生成代理类,以便以非常简单的方式执行查询。

查看“Introduction to querying lists with REST”以获得对REST API的很好的介绍。

0

您需要转到SharePoint的列表设置并设置项目限制,它负责显示一定数量的记录。如果您不指定视图名称,则使用默认视图。如果此默认视图设置为批量显示项目或显示有限数量的项目,那么您只能获取该数量的记录。这全部通过UI在列表/库设置中设置。如果您确实指定了CAML查询以及所有选项,则该视图将被忽略,您将获得CAML查询返回的所有记录。下面是一个定义新CAML查询(使用C#)的示例,其中使用了视图ID(花括号之间),此外还提供了CAML查询。这缩小了从该观点获得的结果。您可以轻松地谷歌如何找到列表ID。

XmlDocument xmlDoc = new System.Xml.XmlDocument(); 
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", ""); 
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", ""); 
ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>FALSE</DateInUtc>"; 
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", ""); 
ndQuery.InnerXml = "<Where><Eq><FieldRef Name='LinkTitle'/><Value Type='Text'>New Tasks</Value></Eq></Where>"; 
XmlNode confNode = listsSvc.GetListItems("NotificationConfig", "{92428C7A-3F35-41B2-AEC4-B8B1C7E64533}", ndQuery, null, null, ndQueryOptions, null);