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

jQuery EasyUI 数据网格子网格实现指南

时间:2026-08-31 11:43
本文详细介绍如何在jQuery EasyUI DataGrid中创建子网格。通过配置详细视图(detailview)和onExpandRow事件,实现点击主网格行展开显示子数据表格。教程包含主网格HTML结构、JavaScript详细视图配置以及后端PHP数据接口示例,并提供修复行高和性能优化的关键代码。

本文详细介绍如何在jQuery EasyUI DataGrid中创建子网格。通过配置详细视图(detailview)和onExpandRow事件,实现点击主网格行展开显示子数据表格。教程包含主网格HTML结构、JavaScript详细视图配置以及后端PHP数据接口示例,并提供修复行高和性能优化的关键代码。

主网格与子网格效果预览

jQuery EasyUI DataGrid主网格展开显示子网格的界面截图,展示主表与子表的层级关系
主网格点击展开后,下方动态加载子网格数据

在数据网格(DataGrid)中,详细视图允许用户点击行首的展开按钮(“+”号)来显示附加的详细信息。子网格可以动态加载任何内容,包括另一个数据网格。这种层级结构非常适合展示主从关系的数据,例如订单与订单明细。

前置准备:引入详细视图脚本

要使用详细视图功能,必须在页面头部引入 EasyUI 提供的详细视图脚本文件。这是实现子网格功能的基础依赖。

第1步:引入 detailview.js 脚本

在 HTML 文件的 部分添加以下脚本引用:

加载该脚本后,DataGrid 组件将具备处理详细视图的能力。

创建主网格 HTML 结构

首先,需要定义主数据网格的 HTML 结构。主网格负责展示顶层数据,并为子网格的展开提供入口。

第2步:编写主网格 HTML 代码

使用

标签定义主网格,并配置必要的属性。以下是主网格的 HTML 示例:

Item ID Product ID List Price Unit Cost Attribute Status

在此结构中,url 属性指定了获取主网格数据的后端接口。配置 singleSelect="true"fitColumns="true" 以优化用户体验。

配置详细视图与子网格逻辑

这是实现子网格的核心步骤。通过 JavaScript 初始化 DataGrid,并配置 viewdetailview。同时,需要定义 detailFormatteronExpandRow 事件处理函数。

第3步:初始化 DataGrid 并配置详细视图

在页面加载完成后,执行以下 JavaScript 代码来初始化主网格并绑定详细视图逻辑:

$('#dg').datagrid({
    view: detailview,
    detailFormatter:function(index,row){
        return '

'; }, onExpandRow: function(index,row){ var ddv = $(this).datagrid('getRowDetail',index).find('table.ddv'); ddv.datagrid({ url:'datagrid22_getdetail.php?itemid='+row.itemid, fitColumns:true, singleSelect:true, rownumbers:true, loadMsg:'', height:'auto', columns:[[ {field:'orderid',title:'Order ID',width:100}, {field:'quantity',title:'Quantity',width:100}, {field:'unitprice',title:'Unit Price',width:100} ]], onResize:function(){ $('#dg').datagrid('fixDetailRowHeight',index); }, onLoadSuccess:function(){ setTimeout(function(){ $('#dg').datagrid('fixDetailRowHeight',index); },0); } }); $('#dg').datagrid('fixDetailRowHeight',index); } });

代码逻辑解析: