基本介绍
分页管理由 gpage
模块实现, gpage
提供了强大的动态分页及静态分页功能,并且为开发者自定义分页样式提供了极高的灵活度。
gpage
模块主要用于生成分页的HTML代码,常用于 MVC
开发场景。
使用方式:
import "github.com/gogf/gf/v2/util/gpage"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/util/gpage
分页对象:
// Page is the pagination implementer.
// All the attributes are public, you can change them when necessary.
type Page struct {
TotalSize int // Total size.
TotalPage int // Total page, which is automatically calculated.
CurrentPage int // Current page number >= 1.
UrlTemplate string // Custom url template for page url producing.
LinkStyle string // CSS style name for HTML link tag <a>.
SpanStyle string // CSS style name for HTML span tag <span>, which is used for first, current and last page tag.
SelectStyle string // CSS style name for HTML select tag <select>.
NextPageTag string // Tag name for next p.
PrevPageTag string // Tag name for prev p.
FirstPageTag string // Tag name for first p.
LastPageTag string // Tag name for last p.
PrevBarTag string // Tag string for prev bar.
NextBarTag string // Tag string for next bar.
PageBarNum int // Page bar number for displaying.
AjaxActionName string // Ajax function name. Ajax is enabled if this attribute is not empty.
}
创建分页对象
由于分页对象往往是在 Web
服务中使用,因此从框架 v1.12
版本开始,我们提供更加便捷的分页对象创建方式,分页对象集成到了 ghttp.Request
对象上,可以非常方便地通过 Request.GetPage
方法获取分页对象。该方法定义如下:
func (r *Request) GetPage(totalSize, pageSize int) *gpage.Page
可以看到,获取分页对象仅需要传递总数量及分页数量即可。当然,分页对象也可以独立使用,由于篇幅有限,我们这里只介绍最常用且最简便的使用方式。
具体使用示例请查看后续章节。
预定义分页样式
方法 GetContent
提供了预定义的常见的分页样式,以便于开发者快速使用。当预定义的样式无法满足开发者需求时,开发者可以使用公开的方法来自定义分页样式(或者进行方法重载来实现自定义),也可以使用正则替换指定预定义的分页样式中的部分内容来实现自定义。
具体使用示例请查看后续章节。
使用 Ajax
分页功能
分页对象的 AjaxActionName
属性用于给定一个 Ajax
方法名,用于实现 Ajax
分页,但是需要注意的是,该 Ajax
方法名称需要前后端约定统一,并且该 Ajax
方法只有一个URL参数。以下是一个 Ajax
方法的客户端定义示例:
function DoAjax(url) {
// 这里读取URL的内容并根据业务逻辑进行内容展示
}
具体使用示例请查看后续章节。
相关文档
📄️ 分页管理-动态分页
该文档介绍了如何在GoFrame框架中使用动态分页,通过GET参数传递分页配置,默认参数名为“page”。通过提供的示例代码,用户可以了解如何在网页中集成四种预定义的分页样式,以及实现分页管理的过程。
📄️ 分页管理-静态分页
在GoFrame框架中实现静态分页管理。静态分页通过使用路由传参的方式实现,具有较高的耦合性。通过示例说明了如何利用GoFrame框架中的模糊匹配路由、命名匹配路由以及字段匹配路由来实现分页功能,使得分页对象能够接受路由中的分页参数,从而实现页面的分开显示。
📄️ 分页管理-Ajax分页
使用Ajax方法实现分页管理的技术细节。区别于传统分页方式,Ajax分页通过Javascript方法动态获取并渲染分页内容,以实现更流畅的用户体验。示例代码展示了如何在GoFrame框架中集成Ajax分页功能,提供一个实用的后端分页解决方案。
📄️ 分页管理-URL模板
使用GoFrame框架的gpage进行分页管理,并通过自定义URL模板功能,使用内置变量替换页码内容来实现页面的动态渲染。文章提供了详细的代码示例,展示了通过设置UrlTemplate属性实现分页URL的个性化配置,为开发者提供了灵活高效的解决方案。
📄️ 分页管理-自定义分页
在GoFrame框架中实现自定义分页样式和标签。通过分页对象公开的属性和方法,开发者可以通过正则匹配替换或自行组织分页内容的方式进行自定义,实现更高的灵活性和个性化。