news 2026/4/3 1:24:03

jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用

在前两个教程中,我们分别实现了使用dialog 弹窗行内编辑的 CRUD DataGrid。本教程将展示第三种方式:使用detailview(展开行明细视图),点击行左侧的展开按钮(+),在行下方显示一个完整的编辑表单。这种方式适合需要更复杂、布局更自由的编辑表单,同时节省页面空间,不占用额外弹窗。

官方教程参考:https://www.jeasyui.com/tutorial/app/crud3.php(Build CRUD Application with edit form in expanded row details)

步骤 1: 引入 EasyUI 资源(额外引入 detailview)

除了基本资源,还需引入datagrid-detailview.js

<linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/default/easyui.css"><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/icon.css"><scripttype="text/javascript"src="https://code.jquery.com/jquery-1.12.4.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/datagrid-detailview.js"></script>
步骤 2: 创建 DataGrid 和工具栏

使用view: detailview启用展开行视图。

<tableid="dg"title="My Users"style="width:700px;height:400px"url="get_users.php"toolbar="#toolbar"pagination="true"fitColumns="true"singleSelect="true"><thead><tr><thfield="firstname"width="50">First Name</th><thfield="lastname"width="50">Last Name</th><thfield="phone"width="50">Phone</th><thfield="email"width="80">Email</th></tr></thead></table><divid="toolbar"><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-add"plain="true"onclick="newItem()">New User</a><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-remove"plain="true"onclick="destroyItem()">Remove User</a></div>
步骤 3: JavaScript 实现展开行编辑表单

核心是通过detailFormatter返回一个容器 div,onExpandRow事件中加载表单(可从服务器 AJAX 加载,或直接内联)。

<scripttype="text/javascript">$(function(){$('#dg').datagrid({view:detailview,detailFormatter:function(index,row){return'<div class="ddv"></div>';},onExpandRow:function(index,row){varddv=$(this).datagrid('getRowDetail',index).find('div.ddv');ddv.panel({height:120,border:false,cache:false,href:'show_form.php?index='+index,// 可选:从服务器加载表单onLoad:function(){// 加载行数据到表单$('#dg').datagrid('fixDetailRowHeight',index);$('#dg').datagrid('selectRow',index);ddv.find('form').form('load',row);}});$('#dg').datagrid('fixDetailRowHeight',index);}});});functionnewItem(){$('#dg').datagrid('appendRow',{isNewRecord:true});varindex=$('#dg').datagrid('getRows').length-1;$('#dg').datagrid('expandRow',index);$('#dg').datagrid('selectRow',index);}functiondestroyItem(){varrow=$('#dg').datagrid('getSelected');if(row){$.messager.confirm('Confirm','确定删除此用户吗?',function(r){if(r){$.post('remove_user.php',{id:row.id},function(result){if(result.success){$('#dg').datagrid('reload');}else{$.messager.show({title:'Error',msg:result.errorMsg});}},'json');}});}}functionsaveItem(index){varrow=$('#dg').datagrid('getRows')[index];varurl=row.isNewRecord?'save_user.php':'update_user.php?id='+row.id;$('#dg').datagrid('getRowDetail',index).find('form').form('submit',{url:url,onSubmit:function(){return$(this).form('validate');},success:function(data){data=eval('('+data+')');data.isNewRecord=false;$('#dg').datagrid('collapseRow',index);$('#dg').datagrid('updateRow',{index:index,row:data});}});}functioncancelItem(index){varrow=$('#dg').datagrid('getRows')[index];if(row.isNewRecord){$('#dg').datagrid('deleteRow',index);}else{$('#dg').datagrid('collapseRow',index);}}</script>
步骤 4: 编辑表单示例(show_form.php 或内联)

表单放在展开行中,支持更复杂的布局:

<!-- show_form.php 返回的内容 --><formmethod="post"><tableclass="dv-table"style="width:100%;background:#fafafa;padding:5px;"><tr><td>First Name</td><td><inputname="firstname"class="easyui-textbox"required="true"/></td><td>Last Name</td><td><inputname="lastname"class="easyui-textbox"required="true"/></td></tr><tr><td>Phone</td><td><inputname="phone"class="easyui-textbox"/></td><td>Email</td><td><inputname="email"class="easyui-textbox"validType="email"/></td></tr></table><divstyle="padding:5px;text-align:right;"><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-save"onclick="saveItem({{index}})">Save</a><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-cancel"onclick="cancelItem({{index}})">Cancel</a></div></form>

(注:如果使用 href 加载,需在 PHP 中替换 {{index}} 为实际 index)

关键说明
  • 新增:appendRow 并标记isNewRecord,展开行进入编辑。
  • 编辑:用户点击 + 展开行,表单加载当前行数据。
  • 保存:提交表单,成功后折叠行并更新 DataGrid 数据。
  • 取消:如果是新行则删除,否则折叠。
  • 删除:选中行后删除,支持确认。
  • 优势:编辑表单布局自由,可添加更多字段、tab 等复杂控件。

更多示例:

  • 官方展开行 CRUD:https://www.jeasyui.com/tutorial/app/crud3.php
  • 展开行显示子网格:https://www.jeasyui.com/tutorial/datagrid/datagrid22.php

如果需要完整 ZIP 下载、服务器端 PHP 示例、或自定义表单布局,请提供更多要求!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 20:02:19

6、量子技术在供应链管理与认知科学中的应用探索

量子技术在供应链管理与认知科学中的应用探索 1. 量子机器学习在供应链需求预测中的应用 1.1 供应链需求预测现状 在全球商业不断发展的背景下,高效的供应链管理至关重要,而准确的需求预测是其中的核心环节。传统的需求预测方法主要依赖统计方法和常规机器学习技术,通过分…

作者头像 李华
网站建设 2026/3/27 19:24:16

12、高级分析与量子计算:革新采购策略

高级分析与量子计算:革新采购策略 1. 引言 在供应链管理不断发展的今天,企业对效率、韧性和创新的追求促使其探索新的技术和战略领域。高级分析与量子计算的融合为革新采购策略带来了巨大潜力。 传统采购主要关注成本节约和供应商关系,如今正经历深刻变革。采购流程数字化…

作者头像 李华
网站建设 2026/3/30 2:22:43

17、通过量子计算技术优化供应链效率与透明度

通过量子计算技术优化供应链效率与透明度 1. 供应链管理现状与量子计算的重要性 1.1 供应链管理面临的挑战 全球市场的高效运作和快速响应依赖于供应链管理(SCM),它涉及到多方和多地之间复杂的采购、制造和分销协调。然而,现代供应链面临诸多障碍,如物流效率低下、易受…

作者头像 李华
网站建设 2026/3/30 6:05:11

要想成为黑客,离不开这十大基础知识_成为黑客需要掌握哪些知识

黑客就像计算机幽灵一样&#xff0c;来无影去无踪。很多朋友对他们的高超技术羡慕不已&#xff0c;都想知道成为一名黑客&#xff0c;都需要掌握哪些基本技能。其实&#xff0c;总结起来也就以下十项基础技能。 1、专业英语 计算机最早诞生于美国&#xff0c;天生自带“英文”…

作者头像 李华
网站建设 2026/4/2 21:39:02

私人影院数字化管理的技术实践与解决方案,佳易王私人影院计时计费管理系统软件教程

私人影院数字化管理的技术实践与解决方案 在休闲娱乐行业持续发展的背景下&#xff0c;私人影院作为新型的观影与社交空间&#xff0c;其运营管理面临着独特的挑战。传统的人工计时、纸质记录等方式已难以适应多包厢、多时段、多价格策略的复杂管理需求。本文将基于行业通用技…

作者头像 李华
网站建设 2026/4/1 6:11:56

SCI论文版面费怎么付?(保姆级教程)

sci论文版面费怎么付&#xff1f;sci期刊版面费支付流程和步骤是怎样的&#xff1f;很多作者文章被sci期刊接收了&#xff0c;但是不知道如何缴纳版面费&#xff0c;不知道如何汇款给sci期刊&#xff0c;下面淘淘论文就给大家讲解具体交费方式&#xff0c;以及支付版版面费的流…

作者头像 李华