Как написать запрос CAML, чтобы результат содержал Column1 и Column2? - PullRequest
0 голосов
/ 07 февраля 2012

Мой код ниже используется для фильтрации по идентификатору:

camlQuery = xmlDoc.CreateElement("Query");

                camlQuery.InnerXml = "<Where><Gt><FieldRef Name='ID'/><Value Type='Number'>0</Value></Gt></Where>";

Как написать CAML-запрос, чтобы он возвращал (результат содержит) Column1 и Column2?

Я новичок в CAML Queries, может быть, невозможно отфильтровать и сказать, что должны быть возвращены только определенные столбцы?

Проблема в том, что когда я запускаю приведенный выше запрос, он возвращает все столбцы SharePoint в моем списке (42), тогда как мне нужно только 2-3.

Спасибо

Ответы [ 3 ]

0 голосов
/ 07 февраля 2012

Документация MSDN SPQuery.Query предоставляет хороший пример использования как свойства Query, так и свойства ViewFields объекта SPQuery:

SPList oList = oWebsiteRoot.Lists["List_Name"];
SPQuery oQuery = new SPQuery();
oQuery.ViewFields = "<FieldRef Name='Column1'/><FieldRef Name='Column2'/>";
oQuery.Query = "<Where><Gt><FieldRef Name='ID'/>" + 
               "<Value Type='Number'>0</Value></Gt></Where>";
SPListItemCollection collListItems = oList.GetItems(oQuery);
0 голосов
/ 15 февраля 2016

Попробуйте с кодом ниже:

    XmlDocument xmlDoc = new System.Xml.XmlDocument();
    XmlElement query = xmlDoc.CreateElement("Query");
    XmlElement viewFields = xmlDoc.CreateElement("ViewFields");
    XmlElement queryOptions = xmlDoc.CreateElement("QueryOptions");

    query.InnerText = "<Where><Gt><FieldRef Name='ID'/><Value Type='Number'>0</Value></Gt></Where>";
    viewFields.InnerXml = "<FieldRef Name=\"Column1\" /><FieldRef Name=\"Column2\" />";
    queryOptions.InnerXml = "";

    try
    {
        XmlNode ndListItems = listService.GetListItems("List_Name", null, query, viewFields, null, queryOptions, null);
    }

Для справок: Пример MSDN

0 голосов
/ 07 февраля 2012

Вы должны использовать свойство SPQuery.ViewFields .

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