这一篇介绍在一个展开行内进行的增删操作,如果一行很长有很多的数据,在一个展开行内进行编辑将更加方便。

1.先看引用的资源

    <link rel="stylesheet" href="jquery-easyui-1.3.5/themes/default/easyui.css" /><link rel="stylesheet" href="jquery-easyui-1.3.5/themes/icon.css" /><link rel="stylesheet" href="jquery-easyui-1.3.5/demo/demo.css"/><script type="text/javascript" src="jquery-easyui-1.3.5/jquery-1.10.2.min.js"></script><script type="text/javascript" src="jquery-easyui-1.3.5/jquery.easyui.min.js"></script><script type="text/javascript" src="jquery-easyui-1.3.5/plugins/datagrid-detailview.js"></script>

这里又要吐槽一下了,在我下载的easyui源文件D:\Serious\phpdev\easyui\jquery-easyui-1.3.5中根本就没有datagrid-detailview.js这个文件,这是作死呢,没办法只能在官网上找这个文件,复制路径http://www.jeasyui.com/easyui/datagrid-detailview.js从IE浏览器中现在这个文件保存到自己目录中。这个不知道是不是因为我下载的是一个免费版本,收费版本里面才有这个文件,很想问一下这个团队的人。

2.在看表格的定义

    <table id="dg" title="My User" style="width:700px;height:250px" url="get_users.php" toolbar="#toolbar" pagination="true" fitColumns="true" singleSelect="true"><thead><tr><th field="firstname" width="50">First Name</th><th field="lastname" width="50">Last Name</th><th field="phone" width="50">Phone</th><th field="email" width="50">Email</th></tr></thead></table><div id="toolbar"><a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newItem()">New</a><a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyItem()">Destory</a></div>

和前面几篇的差不多,这里也给表格定义了工具栏。注意这里没有给表格定义class="easyui-datagrid",不知何解。url="get_users.php"这句可以用来查找数据。

3.看js定义

    <script type="text/javascript"> //创建一个匿名方法并立即执行$(function(){$("#dg").datagrid({view:detailview,detailFormatter:function(index,row){  //返回一个空的div,展开行的时候将展开内容放到这个div中return "<div class='ddv'></div>";},onExpandRow:function(index,row){var ddv = $(this).datagrid('getRowDetail',index).find('div.ddv'); //在这一行中找到class="ddv"的div
                ddv.panel({                                         border:false,cache:true,href:'show_form.php?index='+index,      //展开行访问的路径及传递的参数onLoad:function(){$("#dg").datagrid('fixDetailRowHeight',index);//固定高度$('#dg').datagrid('selectRow',index);$('#dg').datagrid('getRowDetail',index).find('form').form('load',row);  //将行的数据加载,这里可能要把列名和show_form.php文件中的name对应起来
                    }});$('#db').datagrid('fixDetailRowHeight',index);//加载之后固定高度
            }});});//保存function saveItem(index){var row = $("#dg").datagrid('getRows')[index]; //找到当前行var url = row.isNewRecord?'save_user.php':'update_user.php?id='+row.id;//根据条件设置访问url$('#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});}})}//取消function cancelItem(index){var row = $('#dg').datagrid('getRows')[index];if(row.isNewRecord){                      //如果是新增直接删除这一行,包括展开内容,否则是更新则收缩$('#dg').datagrid('deleteRow',index);}else{$('#dg').datagrid('collapseRow',index);}}//删除function destroyItem(){var row = $('#dg').datagrid('getSelected');if(row){$.messager.confirm('Confirm','Are you sure you want to remove this user?',function(r){if(r){var index = $('#dg').datagrid('getRowIndex',row); //为destory_user.php传递参数id$.post('destory_user.php',{id:row.id},function(){$('#dg').datagrid('deleteRow',index);});}});}}//点击新加function newItem(index){$('#dg').datagrid('appendRow',{isNewRecord:true});var index = $('#dg').datagrid('getRows').length-1;$('#dg').datagrid('expandRow',index);$('#dg').datagrid('selecteRow',index);}</script>

这个js有点复杂,我在每个方法中都注释了。我在这里犯了一个错误将 $('#dg').datagrid('getRows')错误的写成了 $("#db").datagrid('getRows') 会报错TypeError: e is undefined,笔误。

4.最后还有一个文件show_form.php如下:

<form method="post"><table class="dv-table" style="width:100%;border:1px solid #ccc;background:#fafafa;padding:5px;margin-top:5px;"><tr><td>First Name</td><td><input name="firstname" class="easyui-validatebox" required="true"></input></td><td>Last Name</td><td><input name="lastname" class="easyui-validatebox" required="true"></input></td></tr><tr><td>Phone</td><td><input name="phone"></input></td><td>Email</td><td><input name="email" class="easyui-validatebox" validType="email"></input></td></tr></table><div style="padding:5px 0;text-align:right;padding-right:30px"><a href="#" class="easyui-linkbutton" iconCls="icon-save" plain="true" onclick="saveItem(<?php echo $_REQUEST['index'];?>)">Save</a><a href="#" class="easyui-linkbutton" iconCls="icon-cancel" plain="true" onclick="cancelItem(<?php echo $_REQUEST['index'];?>)">Cancel</a></div>
</form>

这是一个php文件,可以看到使用<?php echo $_REQUEST['index'];?>接受参数。

好了就写到这里。

转载于:https://www.cnblogs.com/tylerdonet/p/3518173.html

easyui学习笔记3—在展开行内的增删改操作相关推荐

  1. 表格行内编辑增删改查

    前言 最近在做一个OA系统,需要将大量excel中的数据录入,并且希望以后新建数据时,也能像excel那样方便.并且这个后台系统有非常多这样的表单.因此需要做一个内敛的表单控件. 上网找到一款编辑起来 ...

  2. ElasticSearch学习笔记(八)Java AP实现增删改查

    ElasticSearch虽然很多时候可以直接通过schema获取数据,但是有的时候也需要自己手写API来实现自定义的功能.本篇主要是elasticsearch提供的API的学习. 这个是官网的教程链 ...

  3. oracle学习笔记系列------oracle 基本操作之表的增删改查

    --创建一个表 CREATE TABLE employee_souvc(id NUMBER(4),name VARCHAR2(20),gender CHAR(1),birth DATE,salary ...

  4. 1+X web中级 Laravel学习笔记——使用DB facade对数据库进行增删改查

  5. SpringCloud学习笔记022---SpringBoot中集成使用MongoDb进行增删改查

    1.首先在Windows上安装Mongodb,当然也可以在centos上安装   我是在windows上安装的   安装的时候使用一些命令,开启服务   可以看另一篇博文:   安装后访问:http: ...

  6. 2021-08-31《内网安全攻防》学习笔记,第二章-域内信息收集(转自PowerLiu)

    <内网安全攻防>学习笔记,第二章-域内信息收集 2020-07-212020-07-21 15:08:47阅读 1.1K0 2.1 内网信息搜集概述 当渗透测试人员进入内网后,面对的是一片 ...

  7. EasyUI学习笔记6:MIS开发利器_ datagrid插件(上)

    为什么80%的码农都做不了架构师?>>>    一.引言 终于来到easyui系列笔记的重点部分--数据网格datagrid插件.在MIS开发中,需要展示数据大量数据并且频繁地进行C ...

  8. EasyUI学习笔记5:来点甜点_ menu和theme插件

    摘要 使用easyui-menu插件实现右键菜单关闭tab页,实现更改主题 easyui menu 目录[-] 一.引言 二.右键菜单关闭tab 1.绑定tabs的右键菜单 2. 处理菜单点击事件 三 ...

  9. Python学习笔记之类型判断,异常处理,终止程序操作小结

    Python学习笔记之类型判断,异常处理,终止程序操作小结 运行结果: 这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发. 爬虫.数据分析.数据可视化.机 ...

  10. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id=&q ...

最新文章

  1. LeetCode刷题-3
  2. 别在 Java 代码里乱打日志了,这才是正确的打日志姿势!
  3. Dockerfile镜像的制作
  4. html如何制作查看更多横条,页面浏览量顶部横条显示代码-附“Js/Jquery获取网页屏幕可见区域高度”...
  5. 容齐的身世_白发容齐真正身份
  6. javascript 异常基本语法
  7. WinForm 图片变灰方法
  8. MaxCompute_2_MaxCompute数据迁移文档
  9. Linux命令kill和signal
  10. 单元测试spock框架基础
  11. L1-041 寻找250 (10 分)—团体程序设计天梯赛
  12. Java学习6——基本数据类型及其转换
  13. 如何将本地文件上传到Gitlab中?
  14. pandas以文本形式读取Excel表数据写法
  15. flutter 设置全屏背景图(导航栏)
  16. 新书推荐:iOS Swift 游戏开发指南
  17. 【DG】 DataGuard 中处理archive gap的方法
  18. 操作系统 - - 生产者—消费者问题(PV操作)代码显示
  19. 换电脑了大量数据如何迁移?
  20. JAVA强制类型转换常见错误

热门文章

  1. Linux 给普通用户分配root权限或给用户分配多个用户组
  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-7.接口配置文件自动映射到属性和实体类配置...
  3. 阶段3 3.SpringMVC·_06.异常处理及拦截器_3 SpringMVC异常处理之异常处理代码编写
  4. 系统级程序设计结课实验-第一部分
  5. 使用deque模块固定队列长度,用headq模块来查找最大或最小的N个元素以及实现一个优先级排序的队列...
  6. vuex模块相互调用
  7. Android开发1、2周——GeoQuiz项目
  8. VS2010_x86_编译错误
  9. 支付宝新漏洞引发恐慌,那如何关闭小额免密支付呢
  10. Magento 使用心得