解决EasyUI DataGrid删除行失败的方法
笔者最近在做一个项目的后台,用到了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(),而其他操作无须这么处理,接收表的主键就可以了。好了,困扰的问题终于解决了,如果你遇到了类似的问题,希望我的文章可以帮助你,另外,如果引用某个插件不顺利的话,看看它的源代码还是有必要的,特别对于哪些没有说明书的插件
解决EasyUI DataGrid删除行失败的方法的更多相关文章
- 解决easyui datagrid加载数据时,checkbox列没有根据checkbox的值来确定是否选中
背景: 昨天帮朋友做一个easyui datagrid的小实例时,才发现easyui datagrid的checkbox列,没有根据值为true或false来选中checkbox,当时感觉太让人失 ...
- easyui datagrid中 多表头方法总结
easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...
- 解决easyui datagrid load时缓存问题
修改easyui datagrid内容保存后,使用$("#dg").datagrid("reload");或者$("#dg").datagr ...
- easyui datagrid 取消删除的方法
下面为取消方法 ... { field: 'Guid', title: '操作', width: 80, align: 'center', formatter: function (value, ro ...
- 解决anaconda安装cvxpy失败的方法
在Windows下安装凸优化包CVXPY 直接在anaconda prompt中输入pip install cvxpy经常会出现安装失败的情况,使用以下方法,亲测成功! 1. 下载所需的whl文件,请 ...
- 解决Genymotion下载设备失败的方法(Connection Timeout)
一直下载不下来,报错. 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Deb ...
- easyui datagrid deleteRow(删除行)的BUG!
转自:http://my.oschina.net/fants/blog/77189项目中又用到easyui 的datagrid做数据展示.功能很强大,很实用,但bug也很多.今天这个就够让人头疼. 如 ...
- easyui datagrid行合并
easyui datagrid行合并 合并方法 /** * EasyUI DataGrid根据字段动态合并单元格 * 参数 tableID 要合并table的id * 参数 colList 要合并的列 ...
- easyui datagrid 没数据时显示滚动条的解决方法
今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...
随机推荐
- Android学习笔记_24_多媒体MediaPlayer对象之音乐播放器与SoundPool声音池
一.MediaPlayer对象常用方法介绍: MediaPlayer mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { m ...
- linux下通过源码安装git
1.移除旧版本git [root@Git ~]# git --version ## 查看自带的版本git version 1.8.3.1 [root@Git ~]# yum remove git ## ...
- c# LRU实现的缓存类
在网上找到网友中的方法,将其修改整理后,实现了缓存量控制以及时间控制,如果开启缓存时间控制,会降低效率. 定义枚举,移除时使用 public enum RemoveType { [ ...
- ECMAScript面向对象术语
面向对象术语1.对象ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组.尽管 ECMAScript 如此 ...
- 大学C++程序设计教程期末复习重点
第一章 1.cin与count的应用<iostream> 例: cin>>a; cout<<"hello"<<endl; cout& ...
- 【前行&赛时总结】◇第2站&赛时·8◇ Atcoder ABC-109
[第2站&赛时·8] ABC-109 把最后一题题意理解错了……在第二组数据卡了好久(然而并不知道是special judge)QwQ 最终AK,速度慢了一些 Rank:357 Rating: ...
- 【shell脚本学习-3】
part-1 #!/bin/bash:<<FTP#test [ 1 -eq 2] #条件测试x="abc" #不允许有空格y="abc" [ &qu ...
- web前端总结面试问题(理论)
一个页面从输入url到页面显示加载完成,这个过程发生了什么? 1.浏览器根据请求的URL交给DNS域名解析,找到真实的IP,向服务器发起请求. 2.服务器交给后台处理完成后返回数据,浏览器接收文件(h ...
- wamp环境下安装imagick扩展
先上图,如下是安装成功后的phpinfo()界面: 安装步骤: 1.先确定安装版本,比如我的的php : php7.0.12 x86 ts 那么就需要三方版本 要一致:imagick软件本身( 如x ...
- 源码安装CentOs7下的PHP7
首先安装APACHE环境,直接用yum安装 yum install httpd httpd-devel /etc/httpd/ systemctl start httpd.service #启动apa ...