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); };
有时候不是我们失去了目标,而是失去了方向。