游乐游手机版
首页/前端开发/文章详情

jQuery EasyUI 树形网格分页功能实现教程

时间:2026-08-31 11:32
本文详细介绍如何在 jQuery EasyUI 的树形网格(TreeGrid)中启用分页功能。通过配置前端 pagination 属性与后端 PHP 脚本配合,实现大数据量下的动态加载与分页显示。

本文详细介绍如何在 jQuery EasyUI 的树形网格(TreeGrid)中启用分页功能。通过配置前端 pagination 属性与后端 PHP 脚本配合,实现大数据量下的动态加载与分页显示。

树形网格分页效果预览

jQuery EasyUI 树形网格带有分页控件的界面截图
带有分页控件的树形网格界面,底部显示页码切换按钮

上图展示了启用分页后的树形网格效果。网格底部出现了标准的分页工具栏,允许用户切换页面、调整每页显示条数,从而在数据量较大时优化加载速度和用户体验。

实现前的准备工作

在开始编码之前,请确保您的开发环境满足以下条件:

  • jQuery EasyUI 库:已正确引入 jquery.easyui.min.jseasyui.css
  • 后端环境:支持 PHP 的运行环境(如 Apache/Nginx + PHP),并配置好数据库连接。
  • 数据库:包含产品数据的 products 表,字段至少包含 id, name, parentId, quantity, price

前端配置:启用分页属性

要在树形网格中启用分页,核心在于 data-options 中添加 pagination: true。当此属性为真时,EasyUI 会在页面加载或翻页时自动向服务器发送 page(当前页码)和 rows(每页条数)参数。

第1步:编写前端 HTML 结构

使用

标签定义网格,并通过 data-options 配置关键参数。以下是完整的前端代码示例:

Name
Quantity Price Total

关键参数说明:

  • pagination: true:启用分页功能。
  • pageSize:默认每页显示的记录数。
  • pageList:用户可选择的每页显示条数列表(如 2, 10, 20)。
  • onBeforeLoad:加载数据前的回调函数。当 row 为空(即加载顶层数据)时,手动将 param.id 设为 0,以便后端区分是“翻页”还是“展开子节点”。

后端处理:PHP 分页逻辑

后端脚本 treegrid4_getdata.php 负责接收前端参数,查询数据库,并返回符合分页要求的 JSON 数据。由于树形网格的特殊性,后端需要区分两种场景:

  1. 顶层分页:用户切换页码时,id=0,需要返回指定页码的顶层节点,并计算总记录数以支持分页控件。
  2. 子节点加载:用户展开某个节点时,id > 0,直接返回该父节点下的所有子节点(通常子节点不进行分页,或根据需求单独处理)。

第2步:编写后端 PHP 代码

以下是优化后的后端代码示例。注意:原文使用了已废弃的 mysql_query,实际项目中建议使用 mysqliPDO 以提高安全性和兼容性。此处为保持与原文逻辑一致,仍展示核心逻辑,但建议在实际开发中替换。

 0 ? true : false;
}
?>

参数传递与交互机制

前端与后端通过以下参数进行交互:

  • page:当前请求的页码(仅顶层分页时有效)。
  • rows:每页显示的记录数。
  • id:父节点的 ID。当 id=0 时,表示请求顶层数据;当 id>0 时,表示请求特定父节点下的子数据。

注意:当用户展开一个节点时,id 值大于 0,此时后端直接返回子节点列表,不进行分页处理(除非子节点数据量极大,需另行设计分页逻辑)。当用户切换页码时,id 值被强制设为 0,确保只加载顶层数据的新页面。

常见问题与调整

1. 分页控件不显示或无法翻页

表现:网格底部没有分页工具栏,或者翻页后数据无变化。

原因:未设置 pagination: true,或后端返回的 JSON 格式不符合 EasyUI 要求(必须包含 totalrows 字段)。

解决:检查前端配置,并确保后端在顶层分页场景下返回 {"total": 100, "rows": [...]} 格式的数据。

2. 展开节点后数据错乱

表现:展开子节点时,显示了错误的数据或分页控件干扰了子节点加载。

原因:onBeforeLoad 回调中未正确处理 param.id,导致子节点加载时也被当作顶层分页处理。

解决:确保 onBeforeLoad 中仅在 !row(顶层加载)时设置 param.id = 0,展开节点时保持 param.id 为当前节点的 ID。

总结

通过在前端启用 pagination 属性,并在后端 PHP 脚本中根据 id 值区分顶层分页和子节点加载,即可实现 jQuery EasyUI 树形网格的分页功能。关键在于正确处理 onBeforeLoad 回调,确保分页参数与树形结构的层级关系一致。

以上就是 jQuery EasyUI 树形网格添加分页功能的详细内容,更多关于 jQuery EasyUI 树形网格的资料请关注本站其它相关文章!

来源:https://www.runoob.com/jeasyui/jeasyui-tree-treegrid4.html
上一篇jQuery EasyUI TreeGrid 惰性加载节点实现教程 下一篇jQuery EasyUI 树形网格动态加载实现教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CSS3面试题高频问题与答题思路
前端开发 · 2026-09-01

CSS3面试题高频问题与答题思路

准备CSS3面试题时,仅背诵概念难以应对真实追问。本文提供“定义+场景+对比+注意事项”的答题模板,梳理10道高频问题及追问点,并给出完整示范与避坑指南,帮助你在面试中快速组织语言、展现实战经验。

CSS display:grid 布局用法与常见问题排查
前端开发 · 2026-09-01

CSS display:grid 布局用法与常见问题排查

CSS display:grid 是构建二维页面结构的核心声明。本文从开启网格容器、定义列与间距、编写最小示例到响应式策略,系统梳理其用法,并提供“现象-原因-解决”的高频问题排查路径,帮助开发者快速搭建卡片矩阵与复杂内容区。

CSS3元素旋转:语法、交互与常见问题排查
前端开发 · 2026-09-01

CSS3元素旋转:语法、交互与常见问题排查

本文系统讲解CSS3元素旋转的实现方法,涵盖transform: rotate()基础语法、旋转中心设置、过渡与动画搭配技巧,以及常见布局与覆盖问题排查。通过可复制的代码示例与场景建议,帮助开发者快速落地稳定、自然的旋转交互效果。

CSS3动画一直重复?排查与修复指南
前端开发 · 2026-09-01

CSS3动画一直重复?排查与修复指南

CSS3动画持续重复通常由两类原因导致:配置了无限循环或交互逻辑反复重播。本文提供四步排查路径,涵盖样式覆盖检查、事件绑定验证与状态切换分析,并给出可直接复用的CSS与JS修复示例,帮助快速定位并解决动画异常问题。

CSS常见写法与应用场景:从基础样式到响应式布局的实战示例
前端开发 · 2026-09-01

CSS常见写法与应用场景:从基础样式到响应式布局的实战示例

本文通过可复制的HTML与CSS代码示例,系统讲解选择器、文字样式、盒模型、Flex与Grid布局以及响应式设计的常见写法。每个示例均附带明确的应用场景与调试建议,帮助初学者快速建立样式编写思路,并掌握从桌面端到移动端的适配方法。