JQuery EasyUI datagrid 批量编辑和提交

摘要:
前台的主要代码:$(function()){var$dg=$(“#dg”);$dg.datagrid({url:“servlet/list”,宽度:700,高度:250,列:[[{field:'code',title:'code',宽度:100,editor:“validatebox”},{field:'name',title:'name',width:200,editor:“validatebox'},{field:'price',title:'price',width:200,align:'right',editor:'numberbox”}]],工具栏:[{text:“Add”,iconCls:“icon Add”,handler:function(){$dg.datagrid('appendRow',{});varrows=$dg。数据网格('getRows');$dg.datagrid('beginEdit',rows.length-1);}},{text:“Edit”,iconCls:“icon Edit”,handler:function(){varrow=$dg.datagrid('getSelected');if(row){varrowIndex=$dg.ddatagrid('getRowIndex',row);$dg.data grid(‘beginEdit',rowIndex);}},{text:“delete”,iconCls:“icon remove”,handler:function(){varrow=$dg.datagrid('getSelected');if(row){varrowIndex=$dg.ddatagrid('getRowIndex',row);$dg.data grid('deleteRow',rowIndex);}},{text:“结束编辑”,iconCls:“图标取消”,处理程序:endEdit},{text:“Save”,iconCls:“icon Save”,handler:function(){endEdit();if($dg.datagrid('getChanges').length){varinserted=$dg.ddatagrid('getChanges',“inserted”);varddeleted=$dg.datagrid“'getChanges”,“deleted”);varupdated=$dg.dDatagrid(‘getChanges’,“updated”));vareffectRow=newObject();if(inserted.length){effectRow[“inserte”]=JSON.stringy(inserted);}if(deleted.length){effectRow[“deleted”]=JSON.stringify(deleted);}if(updated.length){effectRow[“updated”]=JSON.stringify(updated);}$。Post(“servlet/commit”,effectRow,function(rsp){if(rsp.status){$.messager.alert(“提示”,“提交成功!”)$dg。datagrid;}},“JSON”)。error(function(){$.messager.alert(“prompt”,“submission error!”);});}}}]}));functionendEdit(){varrows=$dg.datagrid;对于{$dg.ddatagrid;}}}});后台提交接收class://Set请求代码req。setCharacterEncoding//json字符串Stringdeleted=req。此处获取getParameter;字符串插入=要求。getParameter;字符串更新=要求。getParameter;如果(delete!=null){//将json字符串转换为对象List<Bean>listInserted=json.parseArray;}如果(已更新!

前台主要代码:

<script type="text/javascript">
    $(function() {
        var $dg = $("#dg");
        $dg.datagrid({
            url : "servlet/list",
            width : 700,
            height : 250,
            columns : [ [ {
                field : 'code',
                title : 'Code',
                width : 100,
                editor : "validatebox"
            }, {
                field : 'name',
                title : 'Name',
                width : 200,
                editor : "validatebox"
            }, {
                field : 'price',
                title : 'Price',
                width : 200,
                align : 'right',
                editor : "numberbox"
            } ] ],
            toolbar : [ {
                text : "添加",
                iconCls : "icon-add",
                handler : function() {
                    $dg.datagrid('appendRow', {});
                    var rows = $dg.datagrid('getRows');
                    $dg.datagrid('beginEdit', rows.length - 1);
                }
            }, {
                text : "编辑",
                iconCls : "icon-edit",
                handler : function() {
                    var row = $dg.datagrid('getSelected');
                    if (row) {
                        var rowIndex = $dg.datagrid('getRowIndex', row);
                        $dg.datagrid('beginEdit', rowIndex);
                    }
                }
            }, {
                text : "删除",
                iconCls : "icon-remove",
                handler : function() {
                    var row = $dg.datagrid('getSelected');
                    if (row) {
                        var rowIndex = $dg.datagrid('getRowIndex', row);
                        $dg.datagrid('deleteRow', rowIndex);
                    }
                }
            }, {
                text : "结束编辑",
                iconCls : "icon-cancel",
                handler :endEdit
            }, {
                text : "保存",
                iconCls : "icon-save",
                handler : function() {
                    endEdit();
                    if ($dg.datagrid('getChanges').length) {
                        var inserted = $dg.datagrid('getChanges', "inserted");
                        var deleted = $dg.datagrid('getChanges', "deleted");
                        var updated = $dg.datagrid('getChanges', "updated");
                        
                        var effectRow = new Object();
                        if (inserted.length) {
                            effectRow["inserted"] = JSON.stringify(inserted);
                        }
                        if (deleted.length) {
                            effectRow["deleted"] = JSON.stringify(deleted);
                        }
                        if (updated.length) {
                            effectRow["updated"] = JSON.stringify(updated);
                        }

                        $.post("servlet/commit", effectRow, function(rsp) {
                            if(rsp.status){
                                $.messager.alert("提示", "提交成功!");
                                $dg.datagrid('acceptChanges');
                            }
                        }, "JSON").error(function() {
                            $.messager.alert("提示", "提交错误了!");
                        });
                    }
                }
            } ]
        });
        
        function endEdit(){
            var rows = $dg.datagrid('getRows');
            for ( var i = 0; i < rows.length; i++) {
                $dg.datagrid('endEdit', i);
            }
        }
    });
</script>
<body>
    <table id="dg" title="批量操作"></table>
</body>
</html>

后台commit接收类:

//设置请求编码
req.setCharacterEncoding("UTF-8");
//获取编辑数据 这里获取到的是json字符串
String deleted = req.getParameter("deleted");
String inserted = req.getParameter("inserted");
String updated = req.getParameter("updated");

if(deleted != null){
    //把json字符串转换成对象
    List<Bean> listDeleted = JSON.parseArray(deleted, Bean.class);
    //TODO 下面就可以根据转换后的对象进行相应的操作了
}

if(inserted != null){
    //把json字符串转换成对象
    List<Bean> listInserted = JSON.parseArray(inserted, Bean.class);
}

if(updated != null){
    //把json字符串转换成对象
    List<Bean> listUpdated = JSON.parseArray(updated, Bean.class);
}

Bean.java

public class Bean {
    private String code;
    private String name;
    private Double price;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getPrice() {
        return price;
    }
    public void setPrice(Double price) {
        this.price = price;
    }
}

免责声明:文章转载自《JQuery EasyUI datagrid 批量编辑和提交》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(转)32位win7用尽4g内存的几种解决方式WPF: 把引用的dll移动到自定义路径下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java中获取当前路径

1. 获取当前路径(绝对路径) package p01; import java.io.File; import java.io.IOException; import java.net.URL; public class Hello01 { public static void main(String[] args) { S...

后端向前端页面发送变量的方法,可以包含特殊字符(如英文双引号)

处理此问题,方法有2种,下面的第二种是最先发现的,后来发现第一种更简单,都做一下记录,以备不时之需。 第一种: 对于没有特殊字符的后台string变量,输入前台时,直接在后台定义一个protected或public变量,赋值完成后,在前台直接用var value='<%= xxx %>';获取即可。xxx是后台变量名称。 对于有特殊字符的后台s...

【转】Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案

前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下。有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说起。问题大概有以下几点: 1、项目层的文件夹结构       2、解决MVC的Controller和Web API的Controller类名不能相同的问题  ...

java反射知识点总结

一.java反射基础 1.1 什么叫java反射? 答:程序运行期间,动态的获取类的基本信息。比如:创建对象,调用类的方法,获得类的基本结构。这样给程序设计提供了很大的灵活性。个人总结就是:根据动态需求,生成动态的响应。java的Class类是java反射机制的基础,反射也是让虚拟机加载指定类。这就用到了java的类装载机制,jvm加载字节码文件,并生成c...

devexpress实现单元格合并以及依据条件合并单元格

1、devexpress实现单元格合并非常的简单,只要设置属性【AllowCellMerge=True】就可以了,实现效果如下图: 2、但是在具体要求中并非需要所有的相同单元格都合并,可能需要其他的条件来控制合并。这个时候我们就需要在事件gridView1_CellMerge中来控制了。下图为根据最后一列判断是否合并单元格的效果图(其中第四列设置为不合并&...

JS时间转换,url编码,jquery返回类型等问题

1.当时间被转换为json格式后会被转换成  /Date(...)/  这种格式,其中...为时间转换成妙后的一串整数 function changeDateFormat(cellval) { var datetime = new Date(parseInt(cellval.replace("/Date(", "").repla...