2012-01-04 63 views
0

在下面的代碼中,我將顯示web應用程序中所有站點的列表。我想只顯示幾個網站,例如100個網站中的5個網站,並且在列表下方我想顯示一個鏈接,將用戶重定向到他/她可以查看所有網站的頁面。在sharepoint中顯示有限數量的項目

達到此目的的最佳方法是什麼?任何人都可以提供一些代碼嗎?

非常感謝。

public static WorkspacesList GetAll() 
    { 
     WorkspacesList allWorkspaces = new WorkspacesList(); 

     using (SPSite site = new SPSite("http://sng3sp6d:8888/")) 
     { 

      SPWebApplication webApplication = site.WebApplication; 

      foreach (SPSite siteCollection in webApplication.Sites) 
      { 
       try 
       { 
        SPWeb website = siteCollection.RootWeb; 

        if (website.DoesUserHavePermissions(SPBasePermissions.ViewListItems)) 
        { 
         allWorkspaces.Add(new Workspace(website.Title, website.Url, website.Created)); 
        } 

       } 
       finally 
       { 
        if (siteCollection != null) 
         siteCollection.Dispose(); 
       } 
      } 
     } 

     allWorkspaces.Reverse(); 
     return allWorkspaces; 
    } 

回答

0

最簡單辦法做到這將是把網站集列表中的列表,並使用標準的Web部件來顯示網站集的用戶可以訪問。然後,您可以限制他們一次看到的物品數量。

您也可以動態創建一個表,其中包含5行,然後只用前5個網站集填充該表。添加一個名爲「查看全部」的按鈕,帶您進入以下頁面:

創建一個保存結果的分享點列表 - 將所有結果寫入列表,然後將列表添加到Web部分頁面。我們稱之爲「/sites/mysite/siteassets/viewsites.aspx」。

編碼「查看全部」按鈕以將用戶帶到新頁面。您可以將用戶標識添加爲查詢字符串,然後按用戶標識過濾「viewsites」頁面。

0

你在WP顯示該信息,那麼在哪裏有你想要多少個項目顯示配置屬性 - 即5

的foreach Inspite,您可以使用它限制在5行。 點擊標題,您可以重定向到另一個頁面>,其中具有相同的WP配置顯示所有項目。

Sandeep

+0

是的,我使用的是網絡的一部分。但是,如何使用for循環遍歷這些網站?一個例子將不勝感激 – 2012-01-04 19:16:15

+0

謝謝大家貢獻此線程,但我使用通用列表來保存所有項目。要求是我只顯示最後5個,最新應該顯示在最前面。任何想法如何做到這一點? – 2012-01-05 12:01:15

0

對於性能問題;我建議使用SPSiteDataQuery,你可以限制你在查詢中得到的項目。

看看:

SPSiteDataQueryRowLimit財產

相關問題