2012-01-04 59 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财产

相关问题