Silverstripe PaginatedList - 如何在当前页面上显示记录编号?

Silverstripe PaginatedList - How to display record numbers on current page?

在 silverstripe PaginatedList 中,我们可以显示像 'Showing 1 of 5 Pages' 这样的页码。 例如如何在每页显示记录编号 "Showing 1-10 record of 100"

您已经有一个 PaginatedList。使用 getTotalItems() 您可以获得项目总数。

在您的模板中,当您在列表范围内时,它是 $TotalItems

编辑: $PageStart gives you the start of the current page, $PageLength当前页面上的项目数量,因此您可以计算当前项目的结束数量。

您可以为 PaginatedList 使用 Extension,例如

class PaginatedListEndNumberExtension extends Extension {

    public function getPageEnd() {
        return $this->owner->getPageStart() + $this->owner->getPageLength()
    }
}

在你的/mysite/_config/config.yml

PaginatedList:
  extensions:
    - PaginatedListEndNumberExtension

所以在你的模板中 $PageEnd 你得到当前页面的结束编号。

代码未经测试,但应该可以帮助您入门。您必须检查结束数字是否大于项目总数,但我将把这个练习留给您;)

万一有人最近遇到这个问题 - 这是至少从 Silverstripe 3 开始的默认功能。不需要任何扩展。 API 文档:https://docs.silverstripe.org/en/4/developer_guides/templates/how_tos/pagination/

您需要两个变量:

$FirstItem
$LastItem

例如

Showing $Results.FirstItem - $Results.LastItem of $Results.TotalItems