可以在文档库上定义分页吗?我有一个包含超过 10000 个文档的文档库......当我打开库时发生超时。
3 回答
实际上 SenseNet 已经这样做了!他们只是不在标准列表控件中提供它。如果你打开 PRC 并导航到/Root/IMS/BuiltIn/Portal
你会看到一个带有分页的列表控件。可以在 /Root/Global/renderers/UserExploreGrid.ascx
用户控制 portlet 中找到该代码。您可以复制代码并对其进行更改以满足您的需求。
我们公司更喜欢创建用户控制 portlet 并使用Datatables调用SenseNet OData API ,使用skip
和top
交付页面。
最后,鉴于 SenseNet 内容存储为树结构(在 SQL 中!),您可以在创建后移动内容,以便按层次组织数据。一个常见的解决方案是获取 DisplayName 的第一个字母并从该字母创建一个子文件夹,从而减少单个节点的项目数。
这是分页的样子:
最简洁的答案是不。目前还没有内置的功能。长答案是您可以自己进行分页。sensenet 的核心成员之一制作了一个网格,您可以在其中使用分页。它不适用于当前的免费使用版本,因为它们缺少她使用的 js 文件。但它背后的想法是使用自定义视图。您可以通过在文档库下添加一个名为 Views 的系统文件夹并在那里添加您的自定义视图来实现。
您可以将此网格用于探索,只需按照以下步骤操作:
- 进入浏览操作页面,在PRC上切换编辑器模式。
- 将 ClientContext portlet(可以在 portlet 选择器对话框的 Portlets->Application 部分下找到)放置到 Wide 列。将 portlet(客户端上下文 portlet)属性、外观设置为无。它是一个技术 portlet,允许在 javascript 中获取 CurrentContext。这是使用此网格的一个非常重要的元素。网格使用客户端上下文。
- 将 UserControlPortlet(在 portlet 选择器中,Portlets->Application 部分)放置到 Wide Column。
- 设置 portlet 属性:4.1。Portlet 标题:<%$ 资源:PortletTitles, Items%> 4.2。用户控件路径:/Root/Global/renderers/UserExploreGrid.ascx
- 在PRC上的签入页面修改。
- 享受您的可分页探索 portlet。
请记住,此网格是专门为用户设计的,因此他们会错过顶部菜单中的操作。这些必须是手写的。然后我建议你复制 UserControl (/Root/Global/renderers/UserExploreGrid.ascx) 然后把操作列表放在上面。您可以在此处阅读有关操作列表的更多信息:http ://wiki.sensenet.com/ActionList
兄弟,马罗斯