5

jqueryデータテーブルを使用しています。ユーザーのリストを表示します。(名、姓など)。苗字の昇順でクリックした時、常に大文字が小文字の前になるように設定できますか?(大文字と小文字を区別します)

以下は例です

FirstName   LastName
A             Xb   <--X is Captial-->
B             xa   <-- x is small-->
c             yc

姓の昇順で並べ替えをクリックすると、次のように表示されます

 FirstName   LastName

B             xa   <--small-->
A             Xb   <--X is Captial-->
c             yc

大文字と小文字を区別してソートするプロパティはありますか?

4

5 に答える 5

0

これはあなたを助けるはずです

var names = [
    {"FirstName":"A", "LastName":"Xb"},
    {"FirstName":"B", "LastName":"xa"},
    {"FirstName":"C", "LastName":"yc"}
];

names.sort(function(a, b) {
    return a.LastName.toLowerCase().localeCompare(
        b.LastName.toLowerCase()
    );
});

console.log(names);

</p>

jsFiddle で動作することを確認してください </p>

于 2012-11-28T04:52:57.780 に答える
0

あなたはこのようなことを試すことができます:-

jQuery.fn.dataTableExt.oSort['string-case-asc']  = function(x,y) {
return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};

jQuery.fn.dataTableExt.oSort['string-case-desc'] = function(x,y) {
return ((x < y) ?  1 : ((x > y) ? -1 : 0));
};

ソート自体を実行する前に、ソートするデータを準備することにより、ソートのパフォーマンスが向上しました。たとえば、同じ文字列に対して .toLowerCase() を複数回実行しても意味がありません。常に同じ結果になります。そのため、ソート関数には、データを準備するための {type}-pre メソッドと {type}-desc および {type}-asc メソッドが含まれるようになりました。すべての内部ソート メソッドがこのメソッドを使用するようになりました。

ソースから

于 2012-11-28T04:55:39.197 に答える
0

jquery datatable と言うときは、 Datatables.net の datatable プラグインを意味すると思います。もしそうなら、バージョン 1.9 から、大文字と小文字を区別する並べ替えが利用可能になったようです:

bCaseInsensitive

于 2012-11-28T04:55:53.873 に答える