Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法(引)

方法一:

相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你会发现,如果Rownumber越来越大,达到三位数或者四位数的时候,Rownumber就显示不全了.这个问题纠结了不知道多少人,在群里和论坛里面都的都被问到无数次了. 以前也一直没有太认真考虑过要解决这个问题,恰好最近有点时间,就研究了一下,其实要解决也很简单,扩展一个方法就行了.

首先,从datagrid生成的代码,我们可以发现,在rowNumber上都有特定的class标记,datagrid-cell-rownumber,datagrid-header-rownumber.既然有规则可循,那么接下来的扩展就好办了......

下面直接贴出方法的扩展代码:

 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事件,所以就有如下,

1 $("#easyui-datagrid").datagrid({
2     onLoadSuccess : function () {
3         $(this).datagrid("fixRownumber");
4     }
5 }); 

方法二:

修改easyui.css中的两个值就可以了。默认是25px

.datagrid-header-rownumber,.datagrid-cell-rownumber{
   width:40px;
  }

到此,就基本已经大功告成,你可以试下效果了.....

时间: 2024-08-05 12:50:43

Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法的相关文章

EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题

症状如图: 上图中,行号列与checkbox 列融合了.解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码: var opts = $(this).datagrid('options'); if(opts.rownumbers){ var dgPanel = $(this).datagrid('getPanel'); var tdRownumber = dgPanel.find('.datagrid-header-rownumber').parent(); var

easyui datagrid updateRow 行号bug

版本是easyui 1.5renderRow:function(_81e,_81f,_820,_821,_822){var opts=$.data(_81e,"datagrid").options;var cc=[];if(_820&&opts.rownumbers){var _823=parseInt(_821)+1; 修这里位置if(opts.pagination){_823+=(opts.pageNumber-1)*opts.pageSize;}cc.push(&

EasyUI datagrid 改变行的背景色

1.简介 使用jQuery EasyUI datagrid获取数据列表的时候,可能需求需要改变某些数据行的背景色,或者将其数据行显示为奇数偶数行不同,这是改变背景色就是非常必要的. 2.实现 使用datagrid的特性:rowStyler 实例如下: $('#keyManagement-gd').datagrid({ rowStyler:function(index,row){ if (row.classification=="Encrypting_Key" || row.classi

Vim的行号、语法显示等设置(.vimrc文件的配置)以及乱码解决

在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号.语法高亮度显示.智能缩进 等功能的.为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc.在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本, 所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimrc #支持putty鼠标粘贴 if has('mouse') set mouse -= a endif 设置完后$:x 

jquery easyui datagrid设置行样式 不可删除某行

rowStyler: function (index,row) { if (parseInt(row.ksrs) > 0) { return 'color:red'; } }, onLoadSuccess:function(data){ var rows = data.rows; for (var j = 0; j < rows.length; j++) { if (parseInt(rows[j]["ksrs"]) > 0) { $(".datagrid-

用BaseAdapter适配ListView只显示了一行的解决办法

今天我用BaseAdapter去适配一个ListView,结果只显示了一行,原来应该是有那个ArrayList<...>的size行的数据的.很奇怪. 我是这样写的ListView所在Layout.xml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <ScrollView 3 android:layout_width="match_parent" 4 android:lay

网络连接显示为空白的解决办法

电脑网络连接显示为空白的解决办法: 问题:网络连接里面没有本地连接.1394连接等图标,里面都是空白,但是设备管理器里面网卡正常,网卡灯也亮,询问如何解决.如图: 解决方案:在我的电脑上点击右键,选择管理,点击服务.从服务里面找到NetworkConnections服务.该服务的描述为:管理"网络和拨号连接"文件夹中对象,在其中可以查看局域网和远程连接.因此如果此服务被禁用,控制面板中"网络连接"里面即为空白,但是设备管理器中的网络设备正常.如下图 总结:在Wind

使用vMware workstation 10安装操作系统显示内部错误的解决办法

在打开vMware workstation 10以后,准备安装Solaris 10操作系统,但是当点击"创建新的虚拟机"的时候,弹出一个对话框,显示"内部错误". 百度了一下,说去程序和功能里面找到vMware workstation 10的安装程序,里面有个修复,修复它既可.可是我试了几遍,都未能成功. 后来才发现,服务项里的vMware有启动状态,有停止状态,把停止状态启动它就OK了. 重新启动vMware workstation 10,正常运行. 使用vMwa

Eclipse导入MyEclipse工程(web项目显示为java项目解决办法)

在直接Import MyEclipse的项目文件导入到Eclipse之后,需要在项目所放的workspace内修改引入项目目录下的.project文件,修改如下: 1.在eclipse中新建一个WEB项目将根目录下下的.project文件覆盖到导出的项目同样目录下, 2.打开导入项目的.project文件,修改下<name>test</name>中间的值即可 之后,刷新项目工程文件.继而,右键项目-->Properties-->选择Project Facets,勾选Dy