在sharepoint中显示有限数量的项目

时间:2012-01-04 13:18:16

标签: sharepoint sharepoint-2010

在下面的代码中,我显示了webapplication中所有站点的列表。我想只显示几个网站,例如100个中的5个,在列表下方我想显示一个链接,将用户重定向到他/她可以查看所有网站的页面。

实现这一目标的最佳方法是什么?任何人都可以提供一些代码吗?

非常感谢。

 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;
    }

3 个答案:

答案 0 :(得分:0)

最简单的方法是将网站集列表放在列表中,并使用标准Web部件显示用户有权访问的网站集。然后,您可以限制他们一次看到的项目数。

您还可以动态创建一个包含5行的表,然后只使用前5个网站集填充该表。添加一个名为“查看全部”的按钮,可以转到包含以下内容的页面:

创建一个包含结果的sharepoint列表 - 将所有结果写入列表,然后将列表添加到Web部件页面。我们称之为“/sites/mysite/siteassets/viewsites.aspx”。

对“查看全部”按钮进行编码,将用户带到新页面。您可以将用户ID添加为查询字符串,然后按用户ID过滤“viewsites”页面。

答案 1 :(得分:0)

您是否在WP中显示此信息,然后您可以拥有一个可配置的属性,表示您想要显示多少项目 - 即5

尽管有ForEach,您可以使用For并将其限制为5行。 点击标题后,您可以重定向到另一个页面>具有相同的WP配置为显示所有项目。

和Sandeep

答案 2 :(得分:0)

对于性能问题;我建议使用SPSiteDataQuery,您可以限制在查询中获得的项目。

看看:

SPSiteDataQueryRowLimit属性