2012-01-04 3 views
0

В приведенном ниже коде я показываю список всех сайтов в веб-приложении. Я хотел бы показать только несколько сайтов, например, 5 из 100, и ниже списка я хотел бы отобразить ссылку, которая перенаправляет пользователя на страницу, где он может просматривать все сайты.отображает ограниченное количество элементов в 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

простой способ сделать это было бы поместить список семейств сайтов в списке и использование стандартного веб-части, чтобы показать коллекции сайтов, которые пользователь имеет доступ. Затем вы можете ограничить количество элементов, которые они видят за раз.

Вы также можете создать таблицу динамически с 5 строками в ней, а затем просто заполнить эту таблицу с помощью первых 5 семейств сайтов. Добавьте кнопку «Просмотреть все», которая приведет вас к странице со следующими адресами:

Создайте список совпадений, содержащий ваши результаты - напишите все ваши результаты в список, а затем добавьте список на страницу веб-части. назовем эту страницу «/sites/mysite/siteassets/viewsites.aspx».

Код «просмотреть все», чтобы перейти на новую страницу. Вы можете добавить идентификатор пользователя в качестве строки запроса, а затем отфильтровать страницу «viewsites» по идентификатору пользователя.

0

Вы отображая эту информацию в WP, то и может иметь конфигурируемый свойство, сколько элементов вы хотите отобразить - то есть 5

Inspite из ForEach, вы можете использовать для и ограничить его до 5 строк. При щелчке по заголовку вы можете перенаправить на другую страницу>, которая имеет тот же WP, что и все элементы.

Sandeep

+0

Да, я использую веб-часть. Но как вы можете проходить через сайты с помощью цикла for? Пример будет очень благодарен –

+0

Спасибо всем за вклад в эту тему, но я использую общий список для хранения всех элементов. Требование состоит в том, что я показываю только последние 5, а последние должны быть сверху. есть идеи как это сделать? –

0

Для проблем с производительностью; Я бы предложил использовать SPSiteDataQuery, и вы можете ограничить элементы, которые вы получаете в запросе.

Взгляните:

SPSiteDataQuery и RowLimit собственности

Смежные вопросы