明确单元格DOM结构

要想弄清楚formatter和styler属性是怎么工作的,首先要弄清楚datagrid组件内容单元格的DOM接口,注意,这里指的是内容单元格,不包括标题单元格,标题单元格的结构有所区别。我们所有内容单元格的默认DOM结构如下:

1
2
3
4
5
<td field="code">
    <div style="text-align:left" class="datagrid-cell datagrid-cell-c1-code">
         文字
    </div>
</td>

很简单,其实只是两层结构,td标签的field属性便是字段的编码,而单元格内容统一用一个div包裹起来,在我举的这个例子中,div标签有个 text-align样式,这个样式其实是由列属性align决定的,同时div标签的class属性值并不是一个定值,需要注意一下。

理解formatter是什么

顾名思义,formatter是格式化的意思,也就是以何种形式呈现的意思,对于一个纯文本,我可以将它呈现为checkbox,也可以呈现为 input输入框,甚至下拉框等等,或者是在文本外层包裹更多的DOM(当然包裹这样做并没有多大意义),这就是formatter的真正意义。

定义示例:

1
2
3
4
5
6
7
8
formatter: function(value, row, index){
    if (value == "007") {
        return '<font color="red">' + value + '</font>';
    }
    else {
        return value;
    }
}

使用formatter需要注意以下几点:

  • 无论formatter出何种形式,格式化出的DOM一定都是被包含在默认的div标签内
  • 在写formatter函数时要保证有值返回,否则单元格没有内容可展示,所以if的时候别忘了else
  • formatter函数不会作用在列属性checkbox为true的单元格上,checkbox列是组件预留的。

理解styler是什么

顾名思义,styler是样式的意思,听起来跟formatter容易混淆,其实它只是利用jQuery的css函数修改默认td标签的样式,所以styler属于低能儿,只能定义单元格的背景色等,而且往往被默认的div标签样式覆盖。

定义示例:

1
2
3
4
5
6
styler: function(value, row, index){
    if (value == "007") {
        return 'background-color:blue;';
    }
}
<br><br>
1
<br><br>

easyui datagrid 表格组件列属性formatter和styler使用方法的更多相关文章

  1. 一步步实现 easyui datagrid表格宽度自适应,效果非常好

    一步步实现 easyui datagrid表格宽度自适应,效果非常好: 一.设置公共方法,使得datagrid的属性  fitColumns:true $(function(){ //初始加载,表格宽 ...

  2. 完美实现保存和加载easyui datagrid自定义调整列宽位置隐藏属性功能

    需求&场景 例表查询是业务系统中使用最多也是最基础功能,但也是调整最平凡,不同的用户对数据的要求也不一样,所以在系统正式使用后,做为开发恨不得坐在业务边上,根据他们的要求进行调整,需要调整最多 ...

  3. easyui datagrid 绑定json对象属性的属性

    今天用easyui 的datagrid绑定数据时,后台提供的数据是实体类类型的,其中有一个实体类A的属性b是另一个实体类B类型的,而前台需要显示b的属性c,这下就悲剧了,前台没法直接绑定了,后来脑筋一 ...

  4. easyui datagrid 动态添加columns属性

    公司在项目设计的时候,有一个需求,就是查出来的表的字段不唯一,一张表的字段可能是三个,也可能是五个,但是却要把它显示到页面,这个给我做ui的带来一点麻烦.因为以前一般用easyui 的datagrid ...

  5. (转)扩展jquery easyui datagrid 之动态绑定列和数据

    本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...

  6. easyui datagrid Column Group 列组、 复杂表头 嵌套表头 组合表头 (转载)

    核心: rowspan:2   //占两行 colspan:3    //占三列 所有的colspan下的二级列表头,统一放在一个数组里. 文章一: 转载来源:https://blog.csdn.ne ...

  7. 扩展-Easyui Datagrid相同连续列合并扩展(一)

    一.autoMergeCellAndCells实现效果 调用方法: function onLoadSuccess(data){     $(this).datagrid("autoMerge ...

  8. EasyUI DataGrid 相同连续列合并

    扩展方法:$.extend($.fn.datagrid.methods, { autoMergeCells: function(jq, fields) { return jq.each(functio ...

  9. easyui datagrid生成序号列formatter

    var opts1; $('#datagrid_1').datagrid({ columns: [ [{ field: 'myNo', title: '序号', align: 'center', wi ...

随机推荐

  1. Ogre碰撞检测

    转自:http://blog.csdn.net/weiqubo/article/details/7108363 Ogre采用树桩管理场景中的各种"元素"(摄像机.灯光.物体等),所 ...

  2. C++实现python标准库中的Counter

    看python standard library by exmple里面提到一个Counter容器,它像muliset一样,能够维持一个集合,并在常量时间插入元素.查询某个元素的个数,而且还提供了一个 ...

  3. ubuntu文件夹右键没有共享选项

    在配置samba的时候,不知道出了什么错误,我就删除了samba,之后在ubuntu文件上按右键就没有共享的选项了,这样每次配置都得进samba麻烦. 我重新安装了samba也不行,郁闷! 解决: 1 ...

  4. E - 今年暑假不AC

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Des ...

  5. Python3 配置文件 解析

    /************************************************************************ * Python3 配置文件 解析 * 说明: * ...

  6. 机器学习技法-神经网络(NNet)

    课程地址:https://class.coursera.org/ntumltwo-002 重要!重要!重要~ 一.神经网络(NNet)的动机 神经网络有很久的历史,由感知机(perceptron)模型 ...

  7. 遇到double 数目过大,转String变成科学计数法

    问题: java中,当double数目过大,转出String时,变成了科学记数法的表示. 总结: 1.项目的存储用的是mysql,mysql的类型和java类型之间存在映射关系,以前关注不多.现在总结 ...

  8. javascript 火狐event.keyCode不能使用event is not defined

    在项目中,登录时需要enter按钮提交页面所以需要监听键盘输出 但是在火狐中不支持 event.code 所以换了中写法 1:form中加入时间传入event <form id="fr ...

  9. iPhone 6/iPhone 6 Plus硬件性能

    iPhone 6/iPhone 6 Plus硬件性能 评分 4 分 正 如之前传闻的,这次同时发布了两款iPhone产品,分别是4.7英寸的iPhone 6和5.5英寸的iPhone 6 Plus.苹 ...

  10. CSS 阴影怎么写?

    只有CSS3才zh支持阴影效果,ke可以用如下写法:.shadow {-webkit-box-shadow:1px 1px 3px #292929;-moz-box-shadow:1px 1px 3p ...