帮助查询SharePoint(在线)Lists.GetListItems

时间:2011-04-20 09:37:25

标签: sharepoint sharepoint-2007

我正在尝试从SharePoint列表中获取具有匹配名称的客户 我尝试过:

XmlDocument doc = new XmlDocument();
doc.LoadXml("<Query><Where><Lt><FieldRef Name=\"CustomerName\"/><Value Type=\"Text\">" + customerName + "</Value></Lt></Where></Query>");
XmlNode listQuery = doc.SelectSingleNode("//Query");

XmlNode n = sharePoint.listsObj.GetListItems(listName, null, listQuery, null, null, null, null);
nsmgr = new XmlNamespaceManager(n.OwnerDocument.NameTable);
nsmgr.AddNamespace("z", "#RowsetSchema");
nsmgr.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
XmlNodeList itemNodeList = n.SelectNodes("rs:data/z:row", nsmgr);

但是在itemNodeList中,我得到的客户名称与我在查询中使用的参数(customerName)完全不相似。

如果我没有传递查询,我会从列表中获取所有客户。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您想获得完全匹配的名称,请使用Eq标记

例如来自

  • 史密斯
  • 史密斯 - 琼斯
  • 琼斯

以下

<Query><Where><Eq><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Eq></Where></Query>

将返回

  • 史密斯

如果要返回包含该字符串的名称,请使用Contains标记

<Query><Where><Contains><FieldRef Name="CustomerName"/><Value Type="Text">Smith</Value></Contains></Where></Query>

将返回

  • 史密斯 - 琼斯
  • 琼斯

查看U2U CAML Builder

http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx