• Easyui扩展或者重载(方法和属性)


    1:

    使用$.fn.datagrid.defaults.editors重载默认值。

    每个编辑器都有以下方法:

    名称属性描述
    init container, options 初始化编辑器并返回目标对象。
    destroy target 注销编辑器。
    getValue target 获取编辑框的值。
    setValue target , value 设置编辑框的值。
    resize target , width 调整编辑器

    如下代码将定义一个文本编辑器:

    $.extend($.fn.datagrid.defaults.editors, {
    text: {
    init: function(container, options){
    var input = $('<input type="text" class="datagrid-editable-input">').appendTo(container);
    return input;
    },
    getValue: function(target){
    return $(target).val();
    },
    setValue: function(target, value){
    $(target).val(value);
    },
    resize: function(target, width){
    var input = $(target);
    if ($.boxModel == true){
    input.width(width - (input.outerWidth() - input.width()));
    } else {
    input.width(width);
    }
    }
    }
    });

    2:DataGrid扩展单元格合并方法:

    /**
     * author ____′↘夏悸
     * create date 2012-11-5
     **/
    $.extend($.fn.datagrid.methods, {
        autoMergeCells: function (jq, fields) {
            return jq.each(function () {
                var target = $(this);
                if (!fields) {
                    fields = target.datagrid("getColumnFields");
                }
                var rows = target.datagrid("getRows");
                var i = 0,
       j = 0,
       temp = {};
                for (i; i < rows.length; i++) {
                    var row = rows[i];
                    j = 0;
                    for (j; j < fields.length; j++) {
                        var field = fields[j];
                        var tf = temp[field];
                        if (!tf) {
                            tf = temp[field] = {};
                            tf[row[field]] = [i];
                        } else {
                            var tfv = tf[row[field]];
                            if (tfv) {
                                tfv.push(i);
                            } else {
                                tfv = tf[row[field]] = [i];
                            }
                        }
                    }
                }
                $.each(temp, function (field, colunm) {
                    $.each(colunm, function () {
                        var group = this;
    
                        if (group.length > 1) {
                            var before,
          after,
          megerIndex = group[0];
                            for (var i = 0; i < group.length; i++) {
                                before = group[i];
                                after = group[i + 1];
                                if (after && (after - before) == 1) {
                                    continue;
                                }
                                var rowspan = before - megerIndex + 1;
                                if (rowspan > 1) {
                                    target.datagrid('mergeCells', {
                                        index: megerIndex,
                                        field: field,
                                        rowspan: rowspan
                                    });
                                }
                                if (after && (after - before) != 1) {
                                    megerIndex = after;
                                }
                            }
                        }
                    });
                });
            });
        }
    });
    

      2:validateBox--validType 属性扩展

    //easyui 验证扩展
    //本身:email | phone| url | length[,] | remote['http://.../action.do','paramName']:发送 ajax 请求来验证值,成功时返回 'true' 
    //扩展:
    $.extend($.fn.validatebox.defaults.rules, {
        minLength: {
            validator: function (value, param) {
                return value.length >= param[0];
            },
            message: '请至少输入 {0} 字符.'
        },
        onlyNumber: {
            validator: function (value, param) {
                var regu = /^[-]{0,1}[0-9]{1,}$/;
                return regu.test(value);
            },
            message: '只能输入数字!'
        }
    });
    

     上面只给出扩展的示例写法,代码并不一定可以使用。 

  • 相关阅读:
    扯一下关于魔兽改键的蛋
    Emacs23.3在ubuntu10.10下的手动编译与安装
    GRUB2英文文档的部分翻译
    WinForm中Crossthread operation not valid错误的解决方法
    C# 嵌入式资源
    raster配准
    excel vba 玫瑰图 风速 风向
    使用UserControl好处
    How does ArcSDE use Oracle Spatial? arcsde怎么使用oracle spatial
    信息抽取的定义(definition of information extraction)
  • 原文地址:https://www.cnblogs.com/volts0302/p/5147619.html
Copyright © 2020-2023  润新知