2016-04-22 17 views
1

グローバリゼーションにglobalize.jsを使用するWebアプリケーションがあります。 "火曜日、22"(en-US)または "Terça-Feira、22"(pt-BR)の形式を使用する列をソートしようとしています。国際化対応のdataTableとjQueryを使用して「平日、曜日」のフォーマットをソートする方法は?

私がテストにコードブロックを使用:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
    "weekdays-sort-pre": function (a) { 
     return a.replace(/^.+,/, ""); 
    }, 

    "weekdays-sort-desc": function (a, b) { 
     return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
    }, 

    "weekdays-sort-desc": function (a, b) { 
     return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
    } 
}); 

しかし、それは正しく並べ替えませんでした。実は、私が得た結果は、あなたがここに見ることができます:

Screen example

は、誰もが最初の部分(曜日)を無視してソートする数値のみを使用する方法を知っていますか?

私が望む結果:

Sunday, 24 
Friday, 29 
Saturday, 30 

答えて

1

ソートプラグインは2つの大きな問題があります。それは、実際のnumber として番号を返さない2つのdesc実装

  • を持って

    1. ここに改良版があります

      jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
          "weekdays-sort-pre": function (a) { 
           return parseInt(a.replace(/^.+,/, "")) //return number 
          }, 
          "weekdays-sort-desc": function (a, b) { 
           return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
          }, 
          "weekdays-sort-asc": function (a, b) {  //implement asc 
           return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
          } 
      }); 
      

      そして、あなたはもちろん、実際に(質問から完全に明確ではありません)プラグインを使用する必要があります。

      var table = $('#example').DataTable({ 
          columnDefs: [ 
          { targets: [0], type: 'weekdays-sort'} 
          ] 
      }) 
      

      デモ - >http://jsfiddle.net/kjjsdumc/

      国際-部分がすべてあるため冗長です文字列から数値を抽出する必要があります。

  • +0

    ありがとうございました。あなたが私に与えたものに加えて、私はプラグインを更新しなければならなかった。分かりました。 –

    関連する問題