jquery easyui datagrid简单使用学习

先上效果图
这里写图片描述

html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css"
    href="../js/themes/default/easyui.css"></link>
<link rel="stylesheet" type="text/css" href="../js/themes/icon.css"></link>
<link rel="stylesheet" type="text/css" href="../js/demo.css"></link>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="../js/easyui-lang-zh_CN.js"></script>
<script src="../html/common/js/common.js" type="text/javascript"></script>
<script src="../html/user/js/userManage.js" type="text/javascript"></script>
</head>
<body>
    <div id="tb">
        <!--查询条件-->
        <table>
            <tr>
                <td>
                    <p style="width: 60px" align="right">用户名:</p>
                </td>
                <td><input id="name" class="easyui-textbox" data-options=""
                    style="width: 100px"></input></td>
                <!-- 可做校验,使用data-options validType(可自定义校验规则,自带的校验规则较少)
                <tr>
                    <td>
                        <p style="width: 60px">用户名:</p>
                    </td>
                    <td><input id="name" class="easyui-textbox"
                        style="height: 25px"
                        data-options="required:true,validType:'username'"></td>
                </tr>
                -->
                <td>
                    <p style="width: 60px" align="right">姓名:</p>
                </td>
                <td><input id="realName" class="easyui-textbox" data-options=""
                    style="width: 100px"></input></td>
                <td>
                    <p style="width: 60px" align="right">状态:</p>
                </td>
                <td>
                    <select id="statusBox" class="easyui-combobox"
                    panelHeight="auto" style="width: 100px">
                    </select>
                </td>
                <td>
                    <a href="javascript:void(0)" class="easyui-linkbutton"
                    iconCls="icon-search" onclick="queryData()">查询</a> 
                    <a href="javascript:void(0)" class="easyui-linkbutton"
                    iconCls="icon-reload" onclick="reset()">重置</a>
                </td>
            </tr>
        </table>
    </div>
    <!--datagrid,在js中初始化-->
    <table id="user_dg" class="easyui-datagrid"></table>
    <!--弹窗,在js中初始化-->
    <div id="win"></div>
</body>
</html>

js:

var operaType = "";

// 加载查询条件
$(function() {
    $.ajax({
        type : "GET",
        url : getRootPath() + "/common/initData?type=userManage",
        success : function(data) {
            // debugger;
            $('#statusBox').combobox({
                data : JSON.parse(data.userStatus),
                valueField : 'id',
                textField : 'text'
            });
            $('#belongBox').combobox({
                data : JSON.parse(data.userBelong),
                valueField : 'id',
                textField : 'text'
            });
        },
        error : function(err) {
            $.messager.alert('消息', '系统错误!', 'error');
        }
    });

})

// 加载datagrid
$(function() {
    $('#user_dg').datagrid({
    //工具栏
        toolbar : [ {
            iconCls : 'icon-add',
            text : "新增",
            width : 100,
            handler : function() {
                gotoAddUser();
            }
        }, '-', {
            iconCls : 'icon-edit',
            text : "编辑",
            width : 100,
            handler : function() {
                gotoEditUser();
            }
        }, '-', {
            iconCls : 'icon-cancel',
            text : "删除",
            width : 100,
            handler : function() {
                deleteUser();
            }
        }, '-', {
            iconCls : 'icon-lock',
            text : "锁定",
            width : 100,
            handler : function() {
                lockUser();
            }
        } ],
        width : 'auto',
        height : 'auto',
        pagination : true,
        pagePosition : 'bottom',
        fitColumns : true,
        //固定的参数列,参数列多的情况下不会随滚动条滚动
        frozenColumns : [ [ {
            field : 'ck',
            checkbox : true
        }, ] ],
        //普通的参数列
        columns : [ [ {
            field : 'userId',
            title : '用户ID',
            width : 100,
            align : 'center'
        }, {
            field : 'name',
            title : '用户名',
            width : 100,
            align : 'center'
        },{
            field : 'status',
            title : '状态',
            width : 100,
            align : 'center',
            //formatter 可处理datagrid显示值,value为当前的值,row为行对象(可获取行中的其他参
            //数),index为行的序号
            formatter : function(value, row, index) {
                if (value == '01') {
                    return "锁定";
                } else if (value == '00') {
                    return "正常";
                }
            }
        }, {
            field : 'insertTime',
            title : '创建时间',
            width : 100,
            align : 'center',
            //日期转化,后台传入类型的为long
            formatter : function(value, row, index) {
                var unixTimestamp = new Date(value);
                return unixTimestamp.toLocaleString();
            }
        }, {
            field : 'updateTime',
            title : '修改时间',
            width : 100,
            align : 'center',
            formatter : function(value, row, index) {
                var unixTimestamp = new Date(value);
                return unixTimestamp.toLocaleString();
            }
        } ] ],
        //查询时访问后台的路径
        url : getRootPath() + "/user/query"
        //可设置默认查询的条件
//      queryParams : {
//          name : "haha",
//          status : $("#statusBox").combobox("getValue"),
//      },
    });
})

//查询方法,查询按钮调用
function queryData() {
    $('#user_dg').datagrid({
        queryParams : {
            name : $("#name").val(),
            status : $("#statusBox").combobox("getValue")
        },
    });
}
//新增界面(弹窗),在html中定义,这里设置具体参数
function gotoAddUser() {
    $('#win').window({
        width : 400,
        height : 600,
        modal : true,
        title : "新增",
    });
    operaType = 'add';
    $('#win').window('refresh', getRootPath() + '/common/page?url=user/userAdd');
}
//关闭弹窗
function closeWin() {
    $('#win').window('close');
    queryData();
}
var editRowId = "";
//修改弹窗
function gotoEditUser() {
    //获取被勾选的行
    var row = $('#user_dg').datagrid('getSelected');
    //判断是否有被选中的行
    if (row) {
        // alert('ID:'+row.userId)
        operaType = 'edit';
        editRowId = row.userId;
        $('#win').window({
            width : 400,
            height : 600,
            modal : true,
            title : "编辑"
        });
        $('#win').window('refresh', getRootPath() + '/common/page?url=user/userAdd');
    } else {
        $.messager.alert('消息', '未勾选待修改的用户!', 'info');
    }
}
//重置查询条件
function reset() {
    $("#name").textbox("setValue", "");
    $("#statusBox").combobox("setValue", "");
}

//删除操作
function deleteUser() {
    var rows = $('#dg').datagrid('getSelections');
    if (rows) {
        // debugger;
        $.messager.confirm('确认', '确定删除选中用户?', function(r) {
            if (r) {
                var userIds = "";
                for (var i = 0; i < rows.length; i++) {
                    userIds += rows[i].userId + " ";
                }
                $.ajax({
                    type : "POST",
                    url : getRootPath() + "/user/delete",
                    data : {
                        userIds : userIds,
                    },
                    success : function(data) {
                        if (data.result == "success") {
                            $.messager.alert('消息', '删除用户成功!', 'info');
                        }
                        if (data.result == "fail") {
                            $.messager.alert('消息', '删除用户失败!', 'error');
                        }
                        queryData();
                    },
                    error : function(err) {
                        $.messager.alert('消息', '删除用户失败!', 'error');
                    }
                });
            }
        });

    } else {
        $.messager.alert('消息', '未勾选待删除的用户!', 'info');
    }
}
function lockUser() {
    var rows = $('#dg').datagrid('getSelections');
    if (rows) {
        // debugger;
        $.messager.confirm('确认', '确定锁定选中用户?', function(r) {
            if (r) {
                var userIds = "";
                for (var i = 0; i < rows.length; i++) {
                    userIds += rows[i].userId + " ";
                }
                $.ajax({
                    type : "POST",
                    url : getRootPath() + "/user/lock",
                    data : {
                        userIds : userIds,
                    },
                    success : function(data) {
                        if (data.result == "success") {
                            $.messager.alert('消息', '锁定用户成功!', 'info');
                            queryData();
                        }
                        if (data.result == "fail") {
                            $.messager.alert('消息', '锁定用户失败!', 'error');
                        }
                    },
                    error : function(err) {
                        $.messager.alert('消息', '锁定用户失败!', 'error');
                    }
                });
            }
        });

    } else {
        $.messager.alert('消息', '未勾选待锁定的用户!', 'info');
    }
}

Ps:获取根目录和校验


function getRootPath() {// 获得根目录
    var strFullPath = window.document.location.href;
    var strPath = window.document.location.pathname;
    var pos = strFullPath.indexOf(strPath);
    var prePath = strFullPath.substring(0, pos);
    var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
    return (prePath + postPath);
}

/**
 * 自定义校验规则
 */
$(function() {
    $
            .extend(
                    $.fn.validatebox.defaults.rules,
                    {
                        idcard : {// 验证身份证
                            validator : function(value) {
                                return /^\d{15}(\d{2}[A-Za-z0-9])?$/i
                                        .test(value);
                            },
                            message : '身份证号码格式不正确'
                        },
                        minLength : {
                            validator : function(value, param) {
                                return value.length >= param[0];
                            },
                            message : '请输入至少(2)个字符.'
                        },
                        length : {
                            validator : function(value, param) {
                                var len = $.trim(value).length;
                                return len >= param[0] && len <= param[1];
                            },
                            message : "输入内容长度必须介于{0}和{1}之间."
                        },
                        phone : {// 验证电话号码
                            validator : function(value) {
                                return /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
                                        .test(value);
                            },
                            message : '格式不正确,请使用下面格式:020-88888888'
                        },
                        mobile : {// 验证手机号码
                            validator : function(value) {
                                return /^(13|15|18)\d{9}$/i.test(value);
                            },
                            message : '手机号码格式不正确'
                        },
                        intOrFloat : {// 验证整数或小数
                            validator : function(value) {
                                return /^\d+(\.\d+)?$/i.test(value);
                            },
                            message : '请输入数字,并确保格式正确'
                        },
                        currency : {// 验证货币
                            validator : function(value) {
                                return /^\d+(\.\d+)?$/i.test(value);
                            },
                            message : '货币格式不正确'
                        },
                        qq : {// 验证QQ,从10000开始
                            validator : function(value) {
                                return /^[1-9]\d{4,9}$/i.test(value);
                            },
                            message : 'QQ号码格式不正确'
                        },
                        integer : {// 验证整数 可正负数
                            validator : function(value) {
                                // return /^[+]?[1-9]+\d*$/i.test(value);

                                return /^([+]?[0-9])|([-]?[0-9])+\d*$/i
                                        .test(value);
                            },
                            message : '请输入整数'
                        },
                        age : {// 验证年龄
                            validator : function(value) {
                                return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i
                                        .test(value);
                            },
                            message : '年龄必须是0到120之间的整数'
                        },

                        chinese : {// 验证中文
                            validator : function(value) {
                                return /^[\Α-\¥]+$/i.test(value);
                            },
                            message : '请输入中文'
                        },
                        english : {// 验证英语
                            validator : function(value) {
                                return /^[A-Za-z]+$/i.test(value);
                            },
                            message : '请输入英文'
                        },
                        unnormal : {// 验证是否包含空格和非法字符
                            validator : function(value) {
                                return /.+/i.test(value);
                            },
                            message : '输入值不能为空和包含其他非法字符'
                        },
                        username : {// 验证用户名
                            validator : function(value) {
                                return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i
                                        .test(value);
                            },
                            message : '用户名不合法(字母开头,允许6-16字节,允许字母数字下划线)'
                        },
                        faxno : {// 验证传真
                            validator : function(value) {
                                // return /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[
                                // ]){1,12})+$/i.test(value);
                                return /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
                                        .test(value);
                            },
                            message : '传真号码不正确'
                        },
                        zip : {// 验证邮政编码
                            validator : function(value) {
                                return /^[1-9]\d{5}$/i.test(value);
                            },
                            message : '邮政编码格式不正确'
                        },
                        ip : {// 验证IP地址
                            validator : function(value) {
                                return /d+.d+.d+.d+/i.test(value);
                            },
                            message : 'IP地址格式不正确'
                        },
                        name : {// 验证姓名,可以是中文或英文
                            validator : function(value) {
                                return /^[\Α-\¥]+$/i.test(value)
                                        | /^\w+[\w\s]+\w+$/i.test(value);
                            },
                            message : '请输入姓名'
                        },
                        date : {// 验证姓名,可以是中文或英文
                            validator : function(value) {
                                // 格式yyyy-MM-dd或yyyy-M-d
                                return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?2\2(?:29))$/i
                                        .test(value);
                            },
                            message : '清输入合适的日期格式'
                        },
                        msn : {
                            validator : function(value) {
                                return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
                                        .test(value);
                            },
                            message : '请输入有效的msn账号(例:abc@hotnail(msn/live).com)'
                        },
                        same : {
                            validator : function(value, param) {
                                if ($("#" + param[0]).val() != ""
                                        && value != "") {
                                    return $("#" + param[0]).val() == value;
                                } else {
                                    return true;
                                }
                            },
                            message : '两次输入的密码不一致!'
                        }
                    });

})

“`

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值