我有一个 webpart,它是顶级站点下的 2-3 个子站点。我需要查询顶级站点集合中的列表和同一级别的列表,我想它可能通过 SPSiteDataquery...我对此有一些困惑我可以编写一个可以查询这两个列表的查询...。
此查询的范围是 sitecollection,这意味着它将查看 sitecollection 中的所有列表。如果我的 CAML 查询对于这两个列表都相同……它应该可以工作吗?
让我通过我的代码解释一下:
SPSite mySite = SPControl.GetContextSite(Context);
SPWeb myWeb = SPControl.GetContextWeb(Context);
SPSiteDataQuery qry = new SPSiteDataQuery();
qry.Lists = "<Lists BaseType='0' />";
qry.Query = "<Where><Contains><FieldRef Name='Country'/><Value Type='Text'>" + strcount + "</Value></Contains></Where>";
qry.ViewFields = "<FieldRef Name='Capital' Nullable='TRUE'/><FieldRef Name='Currency' Nullable='TRUE'/>";
qry.Webs = "<Webs Scope='SiteCollection' />";
DataTable dt = myWeb.GetSiteData(qry);
现在我需要顶级站点列表中的货币和同一级别列表中的资本。这可能吗?还是我误解了 SPSiteDataQuery ...?