Можно ли определить нумерацию страниц в библиотеке документов? У меня есть библиотека документов с более чем 10000 документов... когда я открываю библиотеку, происходит тайм-аут.
Sensenet: нумерация страниц в библиотеке документов
Ответы (3)
На самом деле SenseNet уже делает это! Они просто не доставляют его в стандартном элементе управления списком. Если вы откроете PRC и перейдете к /Root/IMS/BuiltIn/Portal
, вы увидите элемент управления списком с пейджингом. Код можно найти в /Root/Global/renderers/UserExploreGrid.ascx
как портлет управления пользователями. Вы можете скопировать код и изменить его в соответствии с вашими потребностями.
Наша компания предпочитает создавать портлеты управления пользователями и использовать таблицы данных с вызовами SenseNet OData API с использованием skip
и top
для доставки страниц.
Наконец, учитывая, что содержимое SenseNet хранится в виде древовидной структуры (в SQL!), вы можете перемещать содержимое после создания, чтобы данные были организованы иерархически. Обычное решение состоит в том, чтобы взять первую букву DisplayName и создать подпапку из этой буквы, тем самым уменьшив количество элементов на одном узле.
Вот как выглядит пейджинг:
Короткий ответ: нет. Сейчас для этого нет встроенного функционала. Длинный ответ заключается в том, что вы можете сделать разбивку на страницы самостоятельно. Один из основных членов sensnet сделал сетку, в которой можно использовать разбиение на страницы. Это не будет работать с текущими бесплатными версиями, потому что в них отсутствуют файлы js, которые она использовала. Но идея, стоящая за этим, заключается в использовании пользовательского представления. Этого можно добиться, добавив системную папку с именем Views в библиотеку документов и добавив туда свое собственное представление.
Вы можете использовать эту сетку для исследования, просто выполните следующие действия:
- Перейдите на страницу действия «Исследовать» и переключите режим редактора на PRC.
- Поместите портлет ClientContext (его можно найти в разделе Portlets->Application диалогового окна выбора портлета) в столбец Wide. Задайте для свойств портлета (портлет контекста клиента) Apparance значение None. Это технический портлет, который позволяет получить CurrentContext в javascript. Это очень важный элемент для работы с этой сеткой. Grid использует клиентский контекст.
- Поместите UserControlPortlet (в средстве выбора портлетов, раздел Portlets->Application) в широкий столбец.
- Задайте свойства портлета: 4.1. Заголовок портлета: ‹%$ Ресурсы: PortletTitles, Items%> 4.2. Путь пользовательского элемента управления: /Root/Global/renderers/UserExploreGrid.ascx
- Модификация страницы регистрации на КНР.
- Наслаждайтесь своим постраничным портлетом исследования.
Имейте в виду, что эта сетка создана специально для пользователей, поэтому они будут пропускать действия в верхнем меню. Они должны быть написаны от руки. Затем я предлагаю вам скопировать UserControl (/Root/Global/renderers/UserExploreGrid.ascx), а затем поместить в него список действий. Подробнее о списке действий можно прочитать здесь: http://wiki.sensenet.com/ActionList
Бр, марос