2011-05-15 64 views
3

我以多子网站站点继承,如何以编程方式获取待审批页面?

每个子网站得到了附着在网页库中的默认的SharePoint审批工作流程,

因此

,每当页是报批,

会有是每个SubSite上的“工作流程任务”列表中创建的任务。

通过使用SPSiteDataQuery设法从工作流任务列表中的所有子网站查询数据,按下面的例子:

DataTable dt = null; 
using (SPSite site = new SPSite("Site Url")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPSiteDataQuery q = new SPSiteDataQuery(); 
     q.Lists = "<Lists ServerTemplate='107' />"; 
     q.Query = @"<OrderBy><FieldRef Name='Modified' Ascending='False' /></OrderBy>"; 
     q.ViewFields = "<FieldRef Name=\"Title\" />"\; 
     q.Webs = "<Webs Scope='Recursive'/>"; 
     q.RowLimit = 20; 

     dt = web.GetSiteData(q); 
    } 
} 
return dt; 

每当页面被批准之前,工作流程状态为未开始,并已完成当它被批准时。

因此,如果我根据所有工作流程状态查询未开始,那么它将返回所有待审批的结果? 以及如何获取页面标题和FileRefUrl?

非常感谢您的任何建议。

回答

4

就个人而言,我会做到这一点:

 using (SPSite site = new SPSite(SharepointServerURL)) 
     { 
      using (SPWeb web = site.OpenWeb()) 
      {      
       SPFolder sitePages = web.Folders["/SitePages"]; 
       SPListItemCollection pages = sitePages.DocumentLibrary.Items;      

       foreach (SPListItem page in pages) 
       { 
        if (page.ModerationInformation.Status == SPModerationStatusType.Pending) 
        { 
         Console.WriteLine(page.Title + page.Url);        
        } 
       } 
      }     
     } 
相关问题