jQuery EasyUI データグリッド -カスタムソート
デフォルトのソート動作がニーズを満たさない場合は、データグリッド(datagrid)のソート動作をカスタマイズできます。
最も基本的には、ユーザーは列にソート関数を定義できます。関数名は sorter です。この関数は2つの値を受け取り、戻り値は次のようになります:
valueA > valueB => 1 を返す
valueA < valueB => -1 を返す
カスタムソートコード
<table id="tt"></table>
$('#tt').datagrid({
title:'Custom Sort',
iconCls:'icon-ok',
width:520,
height:250,
singleSelect:true,
remoteSort:false,
columns:[[
{field:'itemid',title:'Item ID',width:60,sortable:true},
{field:'listprice',title:'List Price',width:70,align:'right',sortable:true},
{field:'unitcost',title:'Unit Cost',width:70,align:'right',sortable:true},
{field:'attr1',title:'Attribute',width:120,sortable:true},
{field:'date',title:'Date',width:80,sortable:true,align:'center',
sorter:function(a,b){
a = a.split('/');
b = b.split('/');
if (a[2] == b[2]){
if (a[0] == b[0]){
return (a[1]>b[1]?1:-1);
} else {
return (a[0]>b[0]?1:-1);
}
} else {
return (a[2]>b[2]?1:-1);
}
}
},
{field:'status',title:'Status',width:40,align:'center'}
]]
}).datagrid('loadData', data);
このコードからわかるように、date 列にカスタム sorter を作成しました。日付の形式は 'dd/mm/yyyy' で、年月日で簡単にソートできます。
jQuery EasyUI 実例をダウンロード
jeasyui-datagrid-datagrid14.zip
その他の拡張