easyui datagrid 使用代码片段记录

/**
 *
 */

$(function() {
    urlbase = contextPath;

    // 拉取分组组别信息
    // window.groups = [ {
    // group : "1",
    // desc : "zhannei"
    // }, {
    // group : "2",
    // desc : "zhanshi"
    // } ];
    getAllGroup();

});
function initDataGrid() {
    window.spreads = [ {
    spread : "0",
    desc : "默认或未填"
    }, {
    spread : "1",
    desc : "站内"
    }, {
    spread : "2",
    desc : "站外"
    }, {
    spread : "3",
    desc : "中间页"
    }, {
    spread : "2_3",
    desc : "2或3"
    },{
    spread : "1_2_3",
    desc : "1或2或3"
    } ];
    $('#dg')
        .datagrid(
            {
            url : urlbase + '/getdata',
            width : 700,
            height : 'auto',
            loadMsg : "正在加载,请稍等...",
            striped : true,
            // fit: true,//自动大小
            rownumbers : true,// 行号
            // fitColumns:true,
            singleSelect : true,// 是否单选
            remoteSort : false,
            // 远程排序
            columns : [ [
                {
                    field : 'type',
                    title : 'ad_traffic_type',
                    width : 120,
                    sortable : true,
                    editor : {
                    type : 'numberbox',
                    options : {
                        precision : 0,
                        min : 0,
                        required : true
                    }
                    },
                    sorter : function(a, b) {
                    return parseInt(a) > parseInt(b) ? 1
                        : -1;
                    }
                },
                {
                    field : 'spread',
                    title : 'spread_type',
                    width : 120,
                    sortable : true,
                    editor : {
                    type : 'combobox',
                    options : {
                        valueField : 'spread',
                        textField : 'desc',
                        data : window.spreads,
                        required : true,
                        formatter : function(value) {

                        return value.spread + "."
                            + value.desc;
                        }
                    }
                    },
                    sorter : function(a, b) {
                    return a > b ? 1 : -1;
                    }
                },
                {
                    field : 'group',
                    title : 'ad_traffic_group',
                    width : 120,
                    formatter : function(value) {
                    for (var i = 0; i < window.groups.length; i++) {
                        if (window.groups[i].group == value)
                        return window.groups[i].group
                            + '.'
                            + window.groups[i].desc;
                    }
                    return value;
                    },
                    editor : {
                    type : 'combobox',
                    options : {
                        valueField : 'group',
                        textField : 'desc',
                        data : window.groups,
                        required : true,
                        formatter : function(value) {

                        return value.group + "."
                            + value.desc;
                        }
                    }
                    },
                    sortable : true,
                    sorter : function(a, b) {
                    return parseInt(a) > parseInt(b) ? 1
                        : -1;
                    }
                },

                {
                    field : 'desc',
                    title : ' 渠道名称',
                    width : 180,
                    editor : 'text'
                },
                {
                    field : 'action',
                    title : 'Action',
                    width : 120,
                    align : 'center',
                    formatter : function(value, row, index) {
                    var span = '<span>&nbsp&nbsp</span>';
                    if (row.editing) {
                        var s = '<a href="javascript:void(0)" onclick="saverow(this)">Save</a>';
                        var c = '<a href="javascript:void(0)" onclick="cancelrow(this)">Cancel</a>';
                        return s + span + c;
                    } else {
                        var e = '<a href="javascript:void(0)" onclick="editrow(this)">Edit</a>';
                        ;
                        var d = '<a href="javascript:void(0)" onclick="deleterow(this)">Delete</a>';
                        return e + span + d;
                    }
                    }
                } ] ],
            toolbar : [ {
                iconCls : 'icon-add',
                plain : true,
                handler : function() {
                insert();
                }
            } ],
            onBeforeEdit : function(index, row) {
                row.editing = true;
                updateActions(index);
            },
            onAfterEdit : function(index, row) {
                if (typeof row.type == 'undefined'
                    || row.type == ""
                    || typeof row.spread == 'undefined'
                    || typeof row.group == 'undefined') {
                $('#dg').datagrid('beginEdit', index);
                }
                row.editing = false;
                updateActions(index);
            },
            onCancelEdit : function(index, row) {
                row.editing = false;
                updateActions(index);
            }

            });
}
function updateActions(index) {
    $('#dg').datagrid('updateRow', {
    index : index,
    row : {}
    });
}
function getRowIndex(target) {
    var tr = $(target).closest('tr.datagrid-row');
    return parseInt(tr.attr('datagrid-row-index'));
}
function editrow(target) {
    var index = getRowIndex(target);
    $('#dg').datagrid('beginEdit', index);
    $('#dg').datagrid('selectRow', index);
}
function deleterow(target) {
    $.messager.confirm('Confirm', 'Are you sure?', function(r) {
    if (r) {
        var grid = $('#dg');
        var rowIndex = getRowIndex(target);
        grid.datagrid('selectRow', rowIndex);
        var selectedCrowdata = grid.datagrid('getSelected');
        var postData = {
        type : selectedCrowdata.type

        };
        var sucess = function() {
        grid.datagrid('deleteRow', rowIndex);
        };
        ajaxBackAction(postData, "delType", sucess);

    }
    ;
    });
}
function saverow(target) {
    var grid = $('#dg');
    var rowIndex = getRowIndex(target);
    grid.datagrid('endEdit', rowIndex);
    grid.datagrid('selectRow', rowIndex);
    var selectedCrowdata = grid.datagrid('getSelected');
    if (selectedCrowdata.editing == false
        && typeof selectedCrowdata.type != 'undefined'
        && selectedCrowdata.type != "" && typeof selectedCrowdata.desc != 'undefined') {
    var postData = {
        type : selectedCrowdata.type,
        spread : selectedCrowdata.spread,
        group : selectedCrowdata.group,
        desc : selectedCrowdata.desc
    };
    ajaxBackAction(postData, "typeSave");
    }else{
    $.messager.alert('信息不完整','请填写完整信息!','warning');
    }

}
function cancelrow(target) {
    $('#dg').datagrid('cancelEdit', getRowIndex(target));
}

function insert() {
    // var row = $('#dg').datagrid('getSelected');
    var data = $('#dg').datagrid('getData');
    var row = $('#dg').datagrid('getFooterRows');
    if (row) {
    var index = $('#dg').datagrid('getRowIndex', row);
    } else {
    index = 0;
    }
    $('#dg').datagrid('insertRow', {
    index : index,
    row : {}
    });
    $('#dg').datagrid('selectRow', index);
    $('#dg').datagrid('beginEdit', index);
    //对编辑器数据进行检查
    var typeEditor = $('#dg').datagrid('getEditor',{index:index,field:'type'});
    var target =  $(typeEditor.target).focus().next().find('.textbox-text');
    console.info(target);
    target.blur(function(){
    var type = $(this).val();
    var maxtype =0,flag = false;
    for(var i = 1;i<data.rows.length;i++){
        if(maxtype < parseInt(data.rows[i].type)){
        maxtype = parseInt(data.rows[i].type);
        }
        if(parseInt(type) == parseInt(data.rows[i].type)){
        flag = true;
        }
    }
    if(flag){
        $.messager.alert('重复','ad_traffic_type='+type+'已存在!'+"最大到"+maxtype,'warning');
        //$(this).val(maxtype+1);
        //$(this).focus();
    }
    });
}
function ajaxBackAction(Data, actionName, dofunction) {
    jQuery.ajax({
    url : urlbase + "/" + actionName,
    data : Data,
    type : "POST",
    contentType : "application/x-www-form-urlencoded;charset=UTF-8",
    success : function(result) {
        if (result == "true" || result == true) {
        alert("操作成功");
        typeof dofunction == "function" && dofunction();
        } else {
        alert("操作失败");
        }

    },
    error : function() {
        alert("请求存储失败,请重试")
    }
    });
}
function getAllGroup() {
    jQuery.ajax({
    url : urlbase + "/" + "allGroup",
    data : {},
    type : "GET",
    success : function(result) {
        window.groups = result;
        initDataGrid();
    },
    error : function() {

    }
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值