方法一:css
相信不少人在使用easyui的时候都遇到过这个问题,当咱们设置成显示Rownumber的时候,你会发现,若是Rownumber愈来愈大,达到三位数或者四位数的时候,Rownumber就显示不全了.这个问题纠结了不知道多少人,在群里和论坛里面都的都被问到无数次了. 之前也一直没有太认真考虑过要解决这个问题,刚好最近有点时间,就研究了一下,其实要解决也很简单,扩展一个方法就好了.浏览器
首先,从datagrid生成的代码,咱们能够发现,在rowNumber上都有特定的class标记,datagrid-cell-rownumber,datagrid-header-rownumber.既然有规则可循,那么接下来的扩展就好办了......app
下面直接贴出方法的扩展代码:ui
1 $.extend($.fn.datagrid.methods, { 2 fixRownumber : function (jq) { 3 return jq.each(function () { 4 var panel = $(this).datagrid("getPanel"); 5 //获取最后一行的number容器,并拷贝一份 6 var clone = $(".datagrid-cell-rownumber", panel).last().clone(); //因为在某些浏览器里面,是不支持获取隐藏元素的宽度,因此取巧一下 7 clone.css({ 8 "position" : "absolute", 9 left : -1000 10 }).appendTo("body"); 11 var width = clone.width("auto").width(); 12 //默认宽度是25,因此只有大于25的时候才进行fix 13 if (width > 25) { 14 //多加5个像素,保持一点边距 15 $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5); 16 //修改了宽度以后,须要对容器进行从新计算,因此调用resize 17 $(this).datagrid("resize"); 18 //一些清理工做 19 clone.remove(); 20 clone = null; 21 } else { 22 //还原成默认状态 23 $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style"); 24 } 25 }); 26 } 27 });
有了方法,那要怎么使用,在何时使用呢?答案是:onLoadSuccess事件,因此就有以下,this
1 $("#easyui-datagrid").datagrid({ 2 onLoadSuccess : function () { 3 $(this).datagrid("fixRownumber"); 4 } 5 });
方法二: spa
修改easyui.css中的两个值就能够了。默认是25pxcode
.datagrid-header-rownumber,.datagrid-cell-rownumber{ width:40px; }
到此,就基本已经大功告成,你能够试下效果了.....blog