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

时间:2015-06-17 06:07:46

标签: pagination silverstripe

在silverstripe PaginatedList中,我们可以显示网页编号,例如'显示5页中的1页。 例如,如何在每个页面上显示记录编号 "显示1-10记录100"

2 个答案:

答案 0 :(得分:1)

您已有 //Case 1: String str1 = "name"; String str2 = "name"; if (str1 == str2) Console.WriteLine("True"); //Output True if (object.ReferenceEquals(str1, str2)) Console.WriteLine("True"); //Output : True //Case 2: string hello = "hello"; string helloWorld = "hello world"; string helloWorld2 = hello + " world"; if (helloWorld == helloWorld2) Console.WriteLine("True"); //Output : True if (object.ReferenceEquals(helloWorld, helloWorld2)) Console.WriteLine("True"); else Console.WriteLine("False"); //Output : False //Case 3 helloWorld2 = "hello world"; if (helloWorld == helloWorld2) Console.WriteLine("True"); //Output : True if (object.ReferenceEquals(helloWorld, helloWorld2)) Console.WriteLine("True"); //Output : True 。使用getTotalItems(),您可以获得项目总数。

当你在列表的范围内时,在你的模板中它是PaginatedList

修改 $PageStart为您提供当前页面的开头$PageLength当前页面上的项目数量,以便您可以计算当前项目的结束编号。

您可以使用$TotalItems PaginatedList来执行此操作,例如

class PaginatedListEndNumberExtension extends Extension {

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

并在 /mysite/_config/config.yml

PaginatedList:
  extensions:
    - PaginatedListEndNumberExtension

因此,在包含$PageEnd的模板中,您将获得当前页面的结束编号。

代码未经测试但应该让您入门。您必须检查结束编号是否大于总项目数,但我会将此练习留给您;)

答案 1 :(得分:1)

如果最近有人遇到过-这是默认功能,至少从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