为什么此CAML查询不会过滤SharePoint Web Service调用的结果?

时间:2012-04-12 20:45:36

标签: web-services sharepoint-2007 caml

我正在尝试过滤以下Web服务调用返回到SharePoint列表的结果列表。当我有

query.InnerText = "";

结果包括SharePoint列表中的每一行 - 包括IN SERVICE DATE小于今天,大于今天或根本没有值的行。我需要过滤CAML查询,但添加Where语句不起作用。

service.Url = url;
String pipeProjectSummaryListGuid = "{2D193799-F1FB-46B1-A313-56B8B12E1111}";

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

query.InnerText = "<Where><Gt><FieldRef Name=\"In_x0020_Service_x0020_Date\" /><Value Type=\"DateTime\"><Today /></Value></Gt></Where>";
viewFields.InnerXml = "<FieldRef Name=\"NEW_ID\" /><FieldRef Name=\"In_x0020_Service_x0020_Date\" /><FieldRef Name=\"ProjectPriority\" />";
queryOptions.InnerXml = "<ViewAttributes Scope=\"Recursive\" /><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>";

try
{
    results = service.GetListItems(pipeProjectSummaryListGuid, null, query, viewFields, rowLimit, queryOptions, null);
}

1 个答案:

答案 0 :(得分:0)

尝试使用query.InnerXml代替query.InnerText