easyui-datagrid crud 表格

本文展示了如何使用jquery.edatagrid.js插件来简化网页中表格的数据编辑、新增、删除和保存操作。通过配置edatagrid,可以实现对学生信息的便捷管理,包括班级选择、性别选项等,大大提高了开发效率。
摘要由CSDN通过智能技术生成

方法1

<%--
  Created by IntelliJ IDEA.
  User: 22531
  Date: 2021/6/2
  Time: 15:56
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
    <script type="text/javascript" src="/easyui/jquery.min.js"></script>
    <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
    <script src="/easyui/locale/easyui-lang-zh_CN.js"></script>
</head>
<body>
<script type="text/javascript" src="/js/tt.js"></script>
<table id="dg"></table>
<script type="text/javascript">
    $(function () {
        $('#dg').datagrid({
            url: '/admin/getAllStuInfo',
            saveUrl: 'save_user.php',
            updateUrl: 'update_user.php',
            destroyUrl: 'destroy_user.php',
            columns:[[
                {field:'status',width:60,align:'center',editor:{type:'checkbox',options:{on:'P',off:''}}},
                {field:"id",align:"center",title:'学生ID'},
                {field:"sno",align:"center",title:'学号',editor:{type:'textbox',options:{required:true}}},
                {field:"name",align:"center" ,title:'姓名',editor:{type:'textbox',options:{required:true}}},
                {field:"password", align:"center",title:"密码",editor:{type:'textbox',options:{required:true}}},
                {field:"clazzName" ,align:"center",title:"班级",editor:{type:'combobox',
                        options: {
                            valueField:'name',
                            textField:'name',
                            method:'get',
                            url:'/admin/getAllClazz',
                            required:true,
                            editable:false,
                        }
                    }},
                {field:"dept", align:"center",title:'学院'},
                {field:"sex", align:"center",title:'性别',editor:{type:'combobox',
                        options:{
                            valueField: 'label',
                            textField: 'value',
                            data: [{
                                label: '男',
                                value: '男'
                            },{
                                label: '女',
                                value: '女'
                            }],
                            required:true,
                            editable:false,
                        }
                    }},
                {field:"address" ,align:"center",title:'地址',editor:{type:'textbox',options:{required:true}}},
                {field:"age", align:"center",title:'年龄',editor:{type:'numberbox',options:{required:true}}},
                {field:"phone" ,align:"center",title:'电话',editor:{type:'textbox',options:{required:true}}},
                {field:"dormitory", align:"center",title:'宿舍',editor:{type:'textbox',options:{required:true}}},
                {field:"native_place" ,align:"center",title:'籍贯',editor:{type:'textbox',options:{required:true}}}
            ]],
            iconCls: 'icon-edit',
            title:'增删改学生信息',
            singleSelect: true,
            method: 'get',
            rownumbers:true,
            pagination: true,
            pageSize:10,
            pageList:[10,20,30,40,50],
            idField:'id',
            toolbar: [{
                iconCls: 'icon-reload',
                text:'刷新',
                handler: function(){
                    $('#dg').datagrid('reload');
                }
            },'-',{
                iconCls: 'icon-add',
                text: '新增学生',
                handler: append,
            },'-',{
                iconCls: 'icon-remove',
                text: '删除学生',
                handler: removeIt,
            },'-',{
                iconCls: 'icon-save',
                text: '保存修改或新增操作',
                handler: accept,
            }
            ],
             onClickCell:onClickCell,

        })
    })
</script>

<script type="text/javascript">
    var editIndex = undefined;
    function endEditing(){//判断是否所有列符合要求
        if (editIndex == undefined){return true}
        if ($('#dg').datagrid('validateRow', editIndex)){
            $('#dg').datagrid('endEdit', editIndex);
            editIndex = undefined;
            return true;
        } else {
            return false;
        }
    }
    function onClickCell(index, field){
        if (editIndex != index){
            if (endEditing()){
                $('#dg').datagrid('selectRow', index)
                    .datagrid('beginEdit', index);
                var ed = $('#dg').datagrid('getEditor', {index:index,field:field});
                if (ed){
                    ($(ed.target).data('textbox') ? $(ed.target).textbox('textbox') : $(ed.target)).focus();
                }
                editIndex = index;
            }else {
                setTimeout(function(){
                    $('#dg').datagrid('selectRow', editIndex);
                },0);
            }
        }
    }

    function append(){
        if (endEditing()){
            $('#dg').datagrid('appendRow',{status:'P'});
            editIndex = $('#dg').datagrid('getRows').length-1;
            $('#dg').datagrid('selectRow', editIndex)
                .datagrid('beginEdit', editIndex);
        }
    }
    function removeIt(){
        if (editIndex == undefined){return}
        var row = $('#dg').datagrid('getSelected');
        $.messager.confirm('是否删除', '确定删除?', function(r){
            if (r){
                $.get("/admin/adDelStu",{
                    "id":row.id,
                },function (data){
                    if(data.msg==true){
                        $('#dg').datagrid('cancelEdit', editIndex)
                            .datagrid('deleteRow', editIndex);
                        alert("success");
                    }else {
                        alert("删除失败"+data.error);
                    }
                    editIndex = undefined;
                    $('#dg').datagrid('reload');
                })
            }
        });

    }
    function add(){

    }

    function accept(){
        if (endEditing()){
            $('#dg').datagrid('acceptChanges');
            var row =  $('#dg').datagrid('getSelected');
            if(row!=null){
                if(row.id== undefined){
                    $.get("/admin/adAddStu",{
                            "password":row.password,
                            "sno":row.sno,
                            "name":row.name,
                            "clazzName":row.clazzName,
                            "sex":row.sex,
                            "age":row.age,
                            "address":row.address,
                            "phone":row.phone,
                            "dormitory" :row.dormitory,
                            "native_place":row.native_place,
                            /*"row":JSON.stringify(row),*///证明可用
                        },
                        function (msg){
                            if(msg.msg==true){
                                alert("更新成功");
                            }else {
                                alert("失败"+msg.error);
                            }
                            editIndex = undefined;
                            $('#dg').datagrid('reload');
                        })
                }else {
                    $.get("/admin/adUpStu",{
                        "id":row.id,
                        "password":row.password,
                        "sno":row.sno,
                        "clazz_id":row.clazz_id,
                        "name":row.name,
                        "clazzName":row.clazzName,
                        "sex":row.sex,
                        "age":row.age,
                        "address":row.address,
                        "phone":row.phone,
                        "dormitory" :row.dormitory,
                        "native_place":row.native_place,
                    }, function (msg){
                        if(msg.msg==true){
                            $('#dg').datagrid('acceptChanges');
                            alert("更新成功");
                        }else {
                            alert("失败"+msg.error);
                        }
                        $('#dg').datagrid('reload');
                    })
                }
            }
        }
    }
</script>
</body>
</html>

当我辛辛苦苦写完这,闲逛发现官方有写好的。啊啊啊啊无语

方法2:
需要jquery.edatagrid.js

<table id="dg"></table>
<script type="text/javascript">
    $(function () {
        $('#dg').edatagrid({
            url: '/admin/getAllStuInfo',
            saveUrl: '/admin/adAddStu',
            updateUrl: '/admin/adUpStu',
            destroyUrl: '/admin/adDelStu',
            columns:[[
                {field:"id",align:"center",title:'学生ID'},
                {field:"sno",align:"center",title:'学号',editor:{type:'textbox',options:{required:true}}},
                {field:"name",align:"center" ,title:'姓名',editor:{type:'textbox',options:{required:true}}},
                {field:"password", align:"center",title:"密码",editor:{type:'textbox',options:{required:true}}},
                {field:"clazzName" ,align:"center",title:"班级",editor:{type:'combobox',
                        options: {
                            valueField:'name',
                            textField:'name',
                            method:'get',
                            url:'/admin/getAllClazz',
                            required:true,
                            editable:false,
                        }
                    }},
                {field:"dept", align:"center",title:'学院'},
                {field:"sex", align:"center",title:'性别',editor:{type:'combobox',
                        options:{
                            valueField: 'label',
                            textField: 'value',
                            data: [{
                                label: '男',
                                value: '男'
                            },{
                                label: '女',
                                value: '女'
                            }],
                            required:true,
                            editable:false,
                        }
                    }},
                {field:"address" ,align:"center",title:'地址',editor:{type:'textbox',options:{required:true}}},
                {field:"age", align:"center",title:'年龄',editor:{type:'numberbox',options:{required:true}}},
                {field:"phone" ,align:"center",title:'电话',editor:{type:'textbox',options:{required:true}}},
                {field:"dormitory", align:"center",title:'宿舍',editor:{type:'textbox',options:{required:true}}},
                {field:"native_place" ,align:"center",title:'籍贯',editor:{type:'textbox',options:{required:true}}}
            ]],
            iconCls: 'icon-edit',
            title:'增删改学生信息',
            singleSelect: true,
            method: 'get',
            rownumbers:true,
            pagination: true,
            pageSize:10,
            pageList:[10,20,30,40,50],
            idField:'id',
            toolbar: [{
                iconCls: 'icon-reload',
                text:'刷新',
                handler: function(){
                    $('#dg').edatagrid('reload');
                }
            },'-',{
                iconCls: 'icon-add',
                text: '新增学生',
                handler: function () {
                    $('#dg').edatagrid('addRow');
                },
            },'-',{
                iconCls: 'icon-remove',
                text: '删除学生',
                handler: function (){
                    $('#dg').edatagrid('destroyRow');
                },
            },'-',{
                iconCls: 'icon-save',
                text: '保存修改或新增操作',
                handler: function () {
                    $('#dg').edatagrid('saveRow');
                },
            },'-',{
                iconCls: 'icon-undo',
                text: '取消',
                handler: function () {
                    $('#dg').edatagrid('cancelRow');
                },
            }],
        })
    })
</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值