使用easyUI的datagrid组件有的时候需要直接给某列固定值(如操作列)或是对数据进行格式化,这时候就需要formatter属性。
<table style="width:600px" class="easyui-datagrid" data-options="title:'信息列表',url:'position.json',fitColumns:true, rownumbers:true,singleSelect:true,method:'get'"> <thead> <tr> <th data-options="field:'name',width:2">名称</th> <th data-options="field:'desc',width:3">描述</th> <th formatter="formatOp" data-options="field:'id',width:1">操作</th> </tr> </thead> </table>
但是在使用中需要格外注意的是,如果某列的field值在前面已经出现过(已经被绑定过),则后面出现的同field列将会按第一次出现的field列使用。这样的机制就导致了:如果第一次出现的field同值的列没有formatter,后续的formatter将无效。
知道了问题原因,解决办法就呼之欲出了,只要将后续出现的列的field改成任意的不存在的列即可,但是要注意不能是空字符串。
另外如果要在formatter函数中需要使用某属性的值,可以通过function(value,rowData,rowIndex) 第二个参数【rowData.属性名】访问。
"我们每天努力忙碌,用力生活,却总在不知不觉之间遗失什么。"