2011-05-15 62 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);        
        } 
       } 
      }     
     } 
相關問題