天天看點

EasyUI DataGrid 中字段 formatter 格式化不起作用

今天用 EasyUI datagrid 來做清單,要對一些資料進行格式化,判斷某字段狀态時,發現 formatter 格式化對應的函數不起作用。

<table id="list_data" title="未稽核報表" class="easyui-datagrid" style="width: auto;height:350px;" url=""
     toolbar="#toolbar" pagination="true" pagesize="10" total="20"
     rownumbers="true" fitcolumns="true" singleselect="true" pagelist="[10,20]" loadmsg="正在努力加載資料,請稍後...">
  <thead>
    <tr>
      <th data-options="field:'報表名稱',width:200,align:'center'">報表名稱</th>
      <th data-options="field:'報表分組',width:80,align:'center'">報表分組</th>
      <th data-options="field:'報表類型',width:80,align:'center'">報表類型</th>
      <th data-options="field:'報表分類',width:80,align:'center'">報表分類</th>
      <th data-options="field:'制表人',width:80,align:'center'">上報人</th>
      <th data-options="field:'實際報出日期',width:90,align:'center'" formatter="ChangeDateFormat">上報時間</th>
      <th data-options="field:'填報機關',width:80,align:'center'">上報機關</th>
      <th data-options="field:'稽核狀态',width:80,align:'center'">稽核狀态</th>
      <th data-options="field:'稽核狀态',width:80,align:'center'" formatter="managerstr">操作</th>
    </tr>
  </thead>
</table>      

出問題是這句: 

<th data-options="field:'稽核狀态',width:80,align:'center'" formatter="managerstr">操作</th>      

後來檢查發現 : 如果某列的 field值,在前面已經出現過,則後出現的同field列,在這裡,我的是 “稽核狀态”,将按第一次出現的field列使用。如果第一次出現的field同值的列沒有formatter,後續的formatter将無效。

處理辦法,function(value,rowData,rowIndex) 第二個參數rowData.屬性名通路、

function managerstr(value,rowData,rowIndex) {
        if (rowData["稽核狀态"] == "未稽核")
            return "1";
        else if (rowData["稽核狀态"] == "已取回重填")
            return "2";
        else
            return "已經稽核,不允許操作";
    }