笔者最近在做一个项目的后台,用到了EasyUI的datagrid控件,并开启了行内编辑功能,实际上也就是使用了edatagird这个空间,引用了edatagrid.js,一切似乎都做的顺风顺水,添加数据、修改数据都没有问题,然而到删除数据的时候居然没有反应,折腾了好几天也没有任何进展。截图如下:

前台代码如下:

<table id="lsdg" title="设备数据采集列表"  singleSelect="true" 
        rownumbers="true" fitColumns="true" toolbar="#toolbar" pagination="true" idField="user_id">
    <thead> 
        <tr>
       
           <th field="user_id" width="50px" hidden>ID</th>
           <th field="username" width="50px" editor="{type:'validatebox',options:{required:true}}">用户名</th>
           <th field="password" width="50px" editor="{type:'validatebox',options:{required:true}}">密码</th>

……

<table>

初始化数据表格如下:

<script type="text/javascript">
 $('#lsdg').edatagrid({ 
     url:'getUsers',
     saveUrl:'save',
     updateUrl:'update',
     destroyUrl:'destroy'
     });
</script>

使用起来还是很方便的后台是用PHP做的,通过接收提交的数据主键来完成相关操作,比如保存的时候接收user_id作为查询数据表的条件,然后对相应数据进行修改

$userid=$_POST['user_id']

其他操作也是如此,但是当做到删除的时候这样接收数据删除操作却怎么也没有效果,折腾了半天,然后不得有看了一下edatagrid.js的源代码(一般看源代码有抵触心理),然后茅塞顿开,终于找到了原因,原来在edatagrid.js里删除函数POST的参数名称是固定的——‘id’,代码如下

function _del(row){
     var index = dg.datagrid('getRowIndex', row);
     if (index == -1){return}
     if (row.isNewRecord){
      dg.datagrid('cancelEdit', index);
     } else {
      if (opts.destroyUrl){
       var idValue = row[opts.idField||'id'];
       $.post(opts.destroyUrl, {id:idValue}, function(data){

……

后台接收的时候一定要接收id参数,而不是前面说的数据表的主键 user_id,将

$userid=$_POST['user_id']

改为

$userid=$_POST['id']

后,删除就顺利完成了,注意只操作只针对后台删除函数即destory(),而其他操作无须这么处理,接收表的主键就可以了。好了,困扰的问题终于解决了,如果你遇到了类似的问题,希望我的文章可以帮助你,另外,如果引用某个插件不顺利的话,看看它的源代码还是有必要的,特别对于哪些没有说明书的插件

from:顶求网

解决EasyUI DataGrid删除行失败的方法的更多相关文章

  1. 解决easyui datagrid加载数据时,checkbox列没有根据checkbox的值来确定是否选中

    背景:   昨天帮朋友做一个easyui datagrid的小实例时,才发现easyui datagrid的checkbox列,没有根据值为true或false来选中checkbox,当时感觉太让人失 ...

  2. easyui datagrid中 多表头方法总结

    easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...

  3. 解决easyui datagrid load时缓存问题

    修改easyui datagrid内容保存后,使用$("#dg").datagrid("reload");或者$("#dg").datagr ...

  4. easyui datagrid 取消删除的方法

    下面为取消方法 ... { field: 'Guid', title: '操作', width: 80, align: 'center', formatter: function (value, ro ...

  5. 解决anaconda安装cvxpy失败的方法

    在Windows下安装凸优化包CVXPY 直接在anaconda prompt中输入pip install cvxpy经常会出现安装失败的情况,使用以下方法,亲测成功! 1. 下载所需的whl文件,请 ...

  6. 解决Genymotion下载设备失败的方法(Connection Timeout)

    一直下载不下来,报错. 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Deb ...

  7. easyui datagrid deleteRow(删除行)的BUG!

    转自:http://my.oschina.net/fants/blog/77189项目中又用到easyui 的datagrid做数据展示.功能很强大,很实用,但bug也很多.今天这个就够让人头疼. 如 ...

  8. easyui datagrid行合并

    easyui datagrid行合并 合并方法 /** * EasyUI DataGrid根据字段动态合并单元格 * 参数 tableID 要合并table的id * 参数 colList 要合并的列 ...

  9. easyui datagrid 没数据时显示滚动条的解决方法

    今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...

随机推荐

  1. mobileeye

    if a human can drive a car based on vision alone – so can a computer. 但是目前哪家能做到?

  2. vue源码解读1

    前言 vue是一个非常典型的MVVM框架,它的核心功能一是双向数据绑定系统,二是组件化开发系统.那么本文是以一种通俗易懂的的角度来实现一个简单 的双向数据绑定系统,如果你用过vue却对vue的实现原理 ...

  3. GET&&POST请求编码过程

    编码.解码 我们在开发过程中不可避免的一个话题就是编码和解码,那么什么是编码什么是解码呢?为什么要进行编码和解码呢?下面我们一一分析! 编码和解码的概念 编码是信息从一种形式或格式转换为另一种形式的过 ...

  4. 【模板】概率dp

    有n个投资事件,和一个成功概率最低接受值rate.每个投资的价值是c[i],成功概率是p[i](浮点数). 在保证成功概率≥rate的情况下,使价值最大化. #include<bits/stdc ...

  5. Cent-OS——服务状态

    查看MySQL状态: systemctl start mysqld #启用 systemctl stop mysqld #关闭 systemctl restart mysqld #重启MySQL服务 ...

  6. MySQL 修改主键

    网上顺便查了下 ,要先删除 再创建,如果是添加复合主键,则复合主键值不能为空 alter table table_name drop primary key; alter table table_na ...

  7. 修改pytorch官方实例适用于自己的二分类迁移学习项目

    本demo从pytorch官方的迁移学习示例修改而来,增加了以下功能: 根据AUC来迭代最优参数: 五折交叉验证: 输出验证集错误分类图片: 输出分类报告并保存AUC结果图片. import os i ...

  8. JS对象和数组在谷歌浏览器中引用存储的表现

    大家都知道JS的数据分为基本类型和引用类型.具体什么不说了,今天主要说说对象和数组作为引用类型在谷歌浏览器中的表现. 首先,问题是这么发现的.我在控制台使用console打印了一个数组,然后对数组进行 ...

  9. dom技术解析xml (php)

    1.xml实例 test.xml <?xml version="1.0" encoding="utf-8"?><!DOCTYPE 班级 SYS ...

  10. 【shell脚本学习-3】

    part-1 #!/bin/bash:<<FTP#test [ 1 -eq 2] #条件测试x="abc" #不允许有空格y="abc" [ &qu ...