Easyui Datagrid扩展fixRownumber方法 转载

$.extend($.fn.datagrid.methods, {
    fixRownumber : function (jq) {
        return jq.each(function () {
            var panel = $(this).datagrid("getPanel");
            //获取最后一行的number容器,并拷贝一份
            var clone = $(".datagrid-cell-rownumber", panel).last().clone();
            //由于在某些浏览器里面,是不支持获取隐藏元素的宽度,所以取巧一下
            clone.css({
                "position" : "absolute",
                left : -1000
            }).appendTo("body");
            var width = clone.width("auto").width();
            //默认宽度是25,所以只有大于25的时候才进行fix
            if (width > 25) {
                //多加5个像素,保持一点边距
                $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
                //修改了宽度之后,需要对容器进行重新计算,所以调用resize
                $(this).datagrid("resize");
                //一些清理工作
                clone.remove();
                clone = null;
            } else {
                //还原成默认状态
                $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
            }
        });
    }
});
//以下是空数据时候显 '未找到符合条件的数据',$(target).datagrid("fixRownumber");//自适应rownumber 放在最后调用

Easyui.$myview = $.extend({}, $.fn.datagrid.defaults.view, { onAfterRender: function (target) { $.fn.datagrid.defaults.view.onAfterRender.call(this, target); var opts = $(target).datagrid('options'); var vc = $(target).datagrid('getPanel').children('div.datagrid-view'); vc.children('div.datagrid-empty').remove(); if (!$(target).datagrid('getRows').length) { var d = $('<div class="datagrid-empty"></div>').html(opts.emptyMsg || 'no records').appendTo(vc); d.css({ position: 'absolute', left: 0, top: 50, width: '100%', textAlign: 'center' }); } $(target).datagrid("fixRownumber");//自适应rownumber } }); Easyui.datagrid = function (/*object*/options) { var $dg = $('#' + options.datagridId); var _options = $.extend({ loadMsg: '数据加载中,请稍后……', method: 'post', pageList: [15, 20, 30, 50], pageSize: 50, toolbar: '#dg_toorbar', fit: true, pagination: true, border: false, rownumbers: true, striped: true, view: Easyui.$myview, singleSelect: true, fitColumns: true, emptyMsg: '未找到符合条件的数据', cache: false }, options); if (options.formId && $(options.formId).form('validate')) { _options.queryParams = $(options.formId).form('serialize'); } $dg.datagrid(_options); };

 

posted @ 2016-10-24 15:51  米姐  阅读(727)  评论(0编辑  收藏  举报