【jEasyUI DataGrid扩展】动态添加、删除DataGrid列的editor

    今天遇到一个需求,要动态添加或者删除DataGrid列的editor,具体就是有一个可编辑的DataGrid,在新增一行的时候,每个单元格的值都是手动录入的,但是编辑的时候,某列(比如XX代码列)是不能编辑的,于是经过百度,得出如下解决方案:

    1、因为jEasyUI DataGrid本身并没有提供此功能,所以需要自己扩展这两个功能,代码如下:

//扩展datagrid:动态加入、删除editor
$.extend($.fn.datagrid.methods, {
    addEditor : function(jq, param) {
        if (param instanceof Array) {
            $.each(param, function(index, item) {
                var e = $(jq).datagrid('getColumnOption', item.field);
                e.editor = item.editor; });
        } else {
            var e = $(jq).datagrid('getColumnOption', param.field);
            e.editor = param.editor;
        }
    },
    removeEditor : function(jq, param) {
        if (param instanceof Array) {
            $.each(param, function(index, item) {
                var e = $(jq).datagrid('getColumnOption', item);
                e.editor = {};
            });
        } else {
            var e = $(jq).datagrid('getColumnOption', param);
            e.editor = {};
        }
    }
});

2、方法调用:

        2.1 加入editor:

$("#xxDg").datagrid("addEditor", [
    {field: "COLFIELD", editor:{
            type: "textbox",
            options:{
                required:true
            }
        }
    }
]);

    2.2 删除editor:

$("#xxDg").datagrid("removeEditor", "COLFIELD");

你可能感兴趣的:(【jEasyUI DataGrid扩展】动态添加、删除DataGrid列的editor)