2014-01-29 60 views
1

以下来从在SharePoint 2013中的所有任务列表的任务是我的查询: -无法使用CAML

SPSiteDataQuery oQuery = new SPSiteDataQuery(); 

oQuery.Lists = "<Lists ServerTemplate=\"171\" />"; 
oQuery.Query = string.Concat("<Where>", 
           "<Eq>", 
           "<FieldRef Name='Status' />", 
           "<Value Type='Choice'>Not Started</Value>", 
           "</Eq>", 
          "</Where>"); 
oQuery.ViewFields = "<FieldRef Name=\"Title\" />" + /* Title is LastName column </Today>*/ 
         "<FieldRef Name=\"StartDate\"/>" + 
         "<FieldRef Name=\"DueDate\"/>" + 
         "<FieldRef Name=\"LinkTitle\"/>" + 
         "<FieldRef Name=\"Body\"/>" + 
         "<FieldRef Name=\"NewStarter\"/>" + 
         "<FieldRef Name=\"AssignedTo\"/>"; 
oQuery.Webs = "<Webs Scope=\"Recursive\" />"; 

我在我的SharePoint网站6名任务列表。我可以在6个任务列表中看到状态为“未开始”的任务。但是,在Visual Studio 2012中,当我使用CAML查询使用ID为171的任务列表时,我看不到任何任务。我在查询中做错了什么?

回答

2

我有同样的问题,请检查您正在接受的网站。调试应用程序并检查哪些项目被提取。

在调试/添加监视期间在Visual Studio中使用您的site.url属性。

+0

是的,你是对的,它确实指向另一个网站.. – variable

0

您可能会使用错误的ServerTemplate。根据MSDN 107是任务的模板ID。 171是TasksWithTimelineAndHierarchy

+0

我使用107尝试过,这不返回任何结果(0结果)。但是,使用171我会得到工作流任务列表的项目。但不是其他任务列表 – variable

+0

你说得对,现在我注意到107适用于旧的2010任务列表模板,171是2013年应该使用的新模板。 –

+0

另一个想法 - 也许你可以改变oQuery.Webs到“”,只是为了看看它是否返回任何结果 –