我们在《 Jsnpp框架模板的循环语句》这篇教程里面介绍了Jsnpp模板的循环标签的用法,循环标签一般会用在列表的输出,而在实际应用中,我们往往会分页显示列表的内容,例如每页显示10条,分成若干页显示。
那么如果要实现分页显示内容,我们又该怎么办呢?
这篇教程就是来介绍怎么在模板里面实现分页输出的。
我们前面学过循环输出的模板标签用法,这里我们先假设输出分页内容的模板变量是“users”,我们可以用下面的模板语句来输出当前分页的每一项:
{each $item in $users.data}
<div>{$item.name}</div>
{endeach}
上面代码里面的第一行的“in”后面的语句是“$users.data”,这是个复合标签,为什么这里我们演示了一个复合标签?
我们可以从《 Jsnpp框架数据库查询怎么获取结果集》这篇教程里面找到答案,因为分页的结果集是一个组合数组,实际的查询结果是放在“$users”的“data”里面的。
上面的代码我们应该已经熟悉了的,是输出分页内容列表的,使用的是each标签来循环输出内容,内容的标签这里只是示例一下,就是第二行代码,您可以根据实际输出来写具体的标签。
下面我们看怎么输出分页,看下面的代码:
{$users.paging}
很简单是吧?就是这么简单的一个复合标签,我们就完成了分页的输出。
分页输出的效果类似于下图所示:
Jsnpp框架的分页样式是使用的bootstrap4的分页样式,如果您不使用bootstrap4,那么您可以在HTML里面设置您自己的样式代码。
如果您不希望使用“{$users.paging}”这样简单的分页标签,而是想自己写,那么我们也给您准备了以下可用标签。
# |
标签 |
说明 |
---|---|---|
1 | $users.total | 记录总数 |
2 | $users.per | 每页显示数量 |
3 | $users.page | 当前页码 |
4 | $users.pages | 总页码 |
这里列出的标签,以“$users”为例,这跟前面代码里面的“each”循环里面的标签是一致的。
也就是说,您在实际编程中,“$users”需要根据实际情况来写。包括前面介绍的分页标签也一样。如果您的模板变量不是“$users”,而是“$list”,那么分页标签就应该写成“$list.paging”,上面表格里面的也一样要改。
有的时候,我们显示的分页只需要输出上一页和下一页,那么可以用下面的标签来实现输出:
{$users. simplePaging}