2016-05-31 9 views
1

私のテーブルの列の1つは、いくつかのオブジェクトのプロパティに基づいてリンクをレンダリングする必要があります。それが簡素化の定義は次のようになります。jQuery DataTables - オブジェクトのプロパティで並べ替え

columns: [{ 
    "data": "obj", 
    "render": function(data, type, row) { 
     return "<a href='" + obj.x + "'>" + obj.y + "</a>"; 
    } 
} ... ] 

意図したとおり、私はまた、カラムのようobj.yプロパティによってソート可能にするでしょうが、それは、レンダリングありません。これは私の問題が始まるところです。私は機械がちょっと混乱しているのを発見しましたが、ほんの少しの明白な解決策が見当たりません。

カスタム並べ替えをjQuery.fn.dataTableExt.oSortに追加しようとしましたが、列のsTypeを設定し、描画中に各セルにdata-order/data-sort属性を追加するようにしましたが、どちらもそれらは働いた - 列はまだそれがデフォルトの注文を適用するようです。

私は試してみるべき推奨アプローチはありますか? 私はプラグインのバージョン1.10を使用しています。

答えて

1

私が正しく理解していれば、レンダリング機能にはこのような場合のためにtypeパラメータがあります。

このパラメータには、 '表示'、 '並べ替え'、 'フィルタ'などの値があり、データが表示されるコンテキストを示します。

は、だからあなたの場合には、あなたはtype === 'sort'場合をチェックして、あなたがその列でソートする場合のDataTableを考慮したいデータを返す必要があります:

"render": function(data, type, row) { 
    if(type==='sort'){ 
     return obj.y; 
    } 
    return "<a href='" + obj.x + "'>" + obj.y + "</a>"; 
} 
関連する問題