2016-05-12 8 views
0

私はDataTablesを持っているソート問題を誰かに助けてくれますか?テーブルの最初の列を降順にソートする必要があります。列には、並べ替えられていないリストがあるセルがいくつか含まれています。私が望むのは、最初のリスト項目の内容を使用して、順序付けられていないリストでセルを並べ替えることです。 columnDefs型htmlを使用していますが、これでは解決できません。ソートでは、論理順序ではなく、表の最後に順序付けられていないリストを持つセルを体系的にソートします。データシートhtmlソート順不同リストを含むデータ

私は、問題を説明するためjsfiddleを設定している:https://jsfiddle.net/lbriquet2/ka59nb5q/

$(document).ready(function() { 
$('#example').DataTable({ 
"order": [[ 0, "desc" ]], 
"columnDefs": [ 
     {"type": "html", "targets": [ 0 ] }, 
     {"width": "50%", "targets": [ 0, 1 ] } 
     ]  
}  
);}); 

はあなたの助けのために事前にありがとうございます!

答えて

0

あなたはこのように、それを行うためにカスタム関数でソートを拡張することができます。

// register custom sorting function 
$.fn.dataTable.ext.order['dom-list'] = function (settings, col) 
{ 
    return this.api().column(col, {order:'index'}).nodes().map(function (td, i) { 
     // if there is ul>li we get the value of first 
     var $first_li = $('ul li:first', td); 
     if($first_li.length > 0) { 
      return $first_li.text(); 
     } 
     // there is no ul>li in td we get its value 
     return $(td).text(); 
    }); 
}; 

$(document).ready(function() { 
    $('#example').DataTable({ 
      "order": [[ 0, "desc" ]], 
      "columns": [ 
       { "orderDataType": "dom-list" },// set order type to custom function 
       null 
      ], 
      "columnDefs": [ 
       {"width": "50%", "targets": [ 0, 1 ] } 
      ] 
     } 
    ); 
}); 
+0

ありがとうございました!これは完全に動作します! 【 \t \t \t \t { "orderDataType": "DOMリスト"、 "ターゲット":0} :) – lbriquet

+0

私の唯一の改善は、私はColumnDefsに "columnDefs" をorderDataTypeを移動することである、 \t \t \t \t { "width": "50%"、 "targets":[0,1]} \t \t \t] – lbriquet

関連する問題