easyui中datagrid组件的formatter属性无效的解决办法

使用easyUI的datagrid组件有的时候需要直接给某列固定值(如操作列)或是对数据进行格式化,这时候就需要formatter属性。

<table style="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',2">名称</th>
            <th data-options="field:'desc',3">描述</th>
            <th formatter="formatOp" data-options="field:'id',1">操作</th>
        </tr>
    </thead>
</table>

但是在使用中需要格外注意的是,如果某列的field值在前面已经出现过(已经被绑定过),则后面出现的同field列将会按第一次出现的field列使用。这样的机制就导致了:如果第一次出现的field同值的列没有formatter,后续的formatter将无效。

知道了问题原因,解决办法就呼之欲出了,只要将后续出现的列的field改成任意的不存在的列即可,但是要注意不能是空字符串。

另外如果要在formatter函数中需要使用某属性的值,可以通过function(value,rowData,rowIndex) 第二个参数【rowData.属性名】访问。

"我们每天努力忙碌,用力生活,却总在不知不觉之间遗失什么。"

原文地址:https://www.cnblogs.com/yanggb/p/14129415.html