【问题标题】:dgrid pagination exampledgrid 分页示例
【发布时间】:2012-10-17 23:34:04
【问题描述】:

谁能告诉我一个使用 dgrid 的分页扩展和 dgrid 的例子?这可以是参考链接或您键入的简单示例。我在我的代码中定义了它,将它与一个 OnDemandGrid 一起使用,它被添加到我的自定义网格的声明 mixin 中。我看到了页面导航的箭头,我看到了页面大小设置菜单,但是我的 rowsPerPage: 3 规范什么也没做。我仍然看到我的 7 条示例记录。

我正在使用修改后的缓存(数据对象存储),它为我的 dgrid 包装了 JsonRest 和内存存储。

【问题讨论】:

    标签: dojo pagination dgrid


    【解决方案1】:

    我认为问题在于您不能将OnDemandGrid 与分页一起使用,因为OnDemandGrid 有它自己的内部虚拟分页逻辑。来自dgrid extensions wiki

    与 OnDemandList 和 OnDemandGrid 模块相比, 分页扩展实现了经典的离散分页控件。它 在给定时间显示一定数量的结果,并提供 带有用于在页面之间切换的控件的页脚区域。

    注意:分页扩展应该混入列表或网格中,而不是 OnDemand 构造函数之一,因为它们包含自己的 虚拟滚动逻辑。在内部,Pagination 继承自同一个 _StoreMixin 模块由 OnDemand 原型继承,用于与 dojo/store 的通用集成。

    您想要做的是将Pagination 混入一个普通的Grid。 Pagination Mixin 包含您感兴趣的属性,例如行数。 Paginator 扩展处理与提供的存储的对话,以检索和呈现要显示的行集。像这样的类的 define 可能如下所示:

    define(['dojo/_base/declare','dgrid/Grid', 'dgrid/extensions/Pagination'],function(declare,Grid,Pagination){
        return declare('mine.PaginatedGrid',[Grid,Pagination],{
          //various default you can set
          pagingLinks: false,
          pagingTextBox: true,
          firstLastArrows: true,
          minRowsPerPage: 5,
          rowsPerPage: 5,
          pageSizeOptions: [5, 10, 15, 25, 50, 100]
        });
    });
    

    【讨论】:

    • 对我来说这不是一个清晰的描述。是不是说不要对 OnDemandGrid (ODG) 使用分页扩展,但在使用 List 或 Grid 时使用它?看起来如此,那么它如何显示有多少结果以及 ODG 如何与包装 JsonRest 和 Memory 存储的缓存存储交互?我是否仍然在 ODG 的定义中包含分页?显示的行数是基于门户大小还是可以指定?即如果我想一次显示 5 条记录,我该如何指定?
    • 编辑了我的答案,希望能阐明如何在 Grid 中使用扩展/分页。
    • 谢谢布法罗布法罗。如果我使用 Grid 而不是 OnDemandGrid,我会放弃什么?
    • 我在 dgrid 文档中找到了 OnDemandGrid 的文档。这显然是按需数据的延迟加载与使用分页模型的更手动控制的方法相比。
    【解决方案2】:

    DGrid 及其扩展的最佳示例可以在 DGrid 项目的测试文件夹中找到。它们可以在这里找到:

    具体的分页测试可以找到:

    运行它们:

    1. 克隆 git 存储库
    2. 将其放到您的网络服务器上
    3. 导航到 html 页面

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 1970-01-01
      • 2013-02-07
      • 2012-10-12
      • 2018-03-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多