EasyUI中datagrid的样式

  • Post author:
  • Post category:其他


EasyUI

中,很多时候都要对


datagrid


的样式进行修改,例如大于


24


岁的行背景设置为红色;性别为男的列,字体设置为绿色;当行过长时,鼠标移动到行上时,显示该行全部内容;格式化显示时间等等需求。下面就来讲解一下,


EasyUI


中,怎么来实现上面的效果。

1、使用

formatter


列属性来对


datagrid


样式进行修改

1.1

对性别来进行控制

场景:

在程序中,很可能后台存放性别的,并不是“男”和“女”,而是

0





1


,那么在前端怎么来进行转换了,其实转换起来很容易,代码如下:

formatter:function(value , record , index){
		if(value == 0){
			return '<span style=color:red; >男</span>' ;
		} else if( value == 1){
			return '<span style=color:green; >女</span>' ; 
		}
}

formatter

是一个函数,该函数有


3


个参数,分别为当前列的值,当前整行的记录和当前行的索引。打印到控制台上结果如下:


通过这几个参数,可以实现很多效果。上面代码中,实现的效果如下:


1.2

实现对列信息的显示

场景:

在我们的开发中,经常会遇到下面的情况,某一列长度是固定的,但是该列的内容却很长,当前的单元格根本就显示不完所有的内容,这个时候,需要对这一列的内容进行一个提示功能,例如,当鼠标移上去的时候,就显示该列的完整内容,代码如下:

formatter:function(value,rowData,rowIndex){
		return '<span title="'+value+'">'+value+'</span>';
}

这个效果利用了

span


标签的


title


属性,当鼠标移到列上去的时候,就会显示


title


的内容。如果用户不需要使用这种方式,而是需要全部显示完了?后面会介绍这种需求的实现方式。

1.3

实现对敏感信息的隐藏

场景:

在开发中,经常需要对敏感的信息进行隐藏,例如密码等,这种效果也可以利用

formatter


来实现,代码如下:

formatter:function(value,rowData,rowIndex){
		return '******';
}

效果图如上。

1.4

实现在单元格中增加新的操作

场景:

在开发中,有的需求希望增删改查操作放在

toolbar


上,如下图所示:


有的需求则希望邮件点击的时候,以弹出菜单的方式来展现,如下图所示:


而有的需求,则希望将这些操作放在该行末尾的一列中来展现给客户,如下图所示:


那这种效果怎么来实现了,代码如下:

formatter:function(value,rowData,rowIndex){
		return '<button οnclick="getRowDataFromIndex('+rowIndex+');">编辑    </button>|<button οnclick="getRowDataFromIndex('+rowIndex+');">删除 </button>';
}

以上就是使用

formatter


来实现的常用的效果,当然还可以利用


formatter


来实现很多效果,例如时间日期格式的转换等等。我们只需要记住


formatter


返回的是一串字符串。

1、使用rowStyler来实现对

datagrid


行样式进行修改

2.1

在开发中,经常需要对某些特殊的数据给予特殊的处理,例如分数高于


95


分的,年龄大于


24


岁的等等,这个时候,我们就需要使用


rowStyle


来实现类似的效果了。

场景:

对列表中年龄大于

24


岁的行,背景显示为灰色,其余行的背景显示为黄色。

代码如下:

rowStyler:function(rowIndex,rowData){
		if(rowData.age > 24){
				return 'background:gray';
		}else{
				return 'background:yellow';
		}
}

rowStyler

是一个函数,该函数有两个参数,分别是行索引和当前行的值。该函数返回的也是一个字符串。使用这个函数可以对行的样式进行精细的控制。

注意:

rowStyler





datagrid


的属性,而不是列的属性,如果放在列属性中,是不会起任何作用的。

效果如如下:

1、使用styler来实现对

datagrid


列样式进行修改

3.1

对某些特殊列的特殊数据进行特殊的显示

场景:

在一个

datagrid


中,需要对部门为


java


的所有列进行特殊显示

代码如下:

styler:function(value,rowData,rowIndex){
		if(value == "java"){
				return 'color:blue';
		}else{
				return 'color:red';
		}
}

注意:

styler


也是一个函数,该函数也有


3


个参数,参数意义同上,该函数是


datagrid


列的属性,需要放在


columns


里面才能起作用,用来改变列的样式。

效果图如下:


1、使用nowrap来实现对

datagrid


的行进行折行显示

场景:

在开发中,有时一行太长,但又希望通过多行的方式,能够把所有的内容一次性显示完,这个时候,就需要使用

nowrap


属性来实现了,该属性是


datagrid


的属性。

实现起来很简单,只需在

datagrid


的配置项中,增加该属性即可。

Easyui




datagrid


样式就先到这里。



版权声明:本文为liuchuanhong1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。