Помощь по запросу для SharePoint (онлайн) Lists.GetListItems - PullRequest
2 голосов
/ 20 апреля 2011

Я пытаюсь получить клиентов с подходящим именем из списка 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 Ответ

2 голосов
/ 20 апреля 2011

Если вы хотите получить имена, которые точно совпадают, используйте тег Eq

Например, от

  • Смит
  • Смит-Джонс
  • Jones

следующий

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

вернется

  • Smith

Если вы хотите вернуть имена, содержащие строку, используйте тег Contains

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

вернется

  • Smith-Джонс
  • Jones

Посмотрите на U2U CAML Builder

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...