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
在 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