今天用 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 "已經稽核,不允許操作";
}