• 解决EasyUI DataGrid删除行失败的方法


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

    QQ图片20180330123200.png

    前台代码如下:

    <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:顶求网

  • 相关阅读:
    Python+Selenium自动化总结
    Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法
    Python+Selenium自动化-模拟键盘操作
    【leetcode】1053. Previous Permutation With One Swap
    【leetcode】1052. Grumpy Bookstore Owner
    【leetcode】1034. Coloring A Border
    【leetcode】1042. Flower Planting With No Adjacent
    【leetcode】1035. Uncrossed Lines
    【leetcode】1048. Longest String Chain
    【leetcode】1047. Remove All Adjacent Duplicates In String
  • 原文地址:https://www.cnblogs.com/nerd/p/8675600.html
Copyright © 2020-2023  润新知