-1

ページにjQueryテンプレートにバインドするオブジェクトの動的コレクションがあります。クライアント側にあるこのオブジェクトのコレクションはList<T>、サーバーから返されます。サーバーにはT、任意のクラスの任意のオブジェクトを含めることができます。例えば:

Class Employee
{
 string Name;
 int Id;
 int age;
}

Class Companies
{
  int CompId;
  string CompanyName;
  string CompanyLocation;
}

ユーザーのリクエストに基づいて、List<Employee>またはList<Companies>クライアント側に送信します。jqueryを使用してクライアント側でこのリストを並べ替えることができるかどうか疑問に思っていました。どんな助けでも大歓迎です。

4

2 に答える 2

0

jQueryはDOMを操作するためのライブラリであり、文字列に関しては最適ではありません。underscore.jsをチェックしてください。

アンダースコアのドキュメントは素晴らしくシンプルです。あなたはあなたが望むものを簡単に達成する方法を見つけるでしょう。

于 2012-10-24T06:49:18.023 に答える
0

これはあなたが望むものとは正確に一致しないかもしれませんが、それはあなたに先に進むのに十分なアイデアを与えるはずです:

var list = [{
    prop1: 'a',
    prop2: 5
}, {
    prop1: 'b',
    prop2: 4
}, {
    prop1: 'c',
    prop2: 3
}, {
    prop1: 'd',
    prop2: 2
}, {
    prop1: 'e',
    prop2: 1
}];

function sort(propName, direction) {
    var dirOffset = direction === 'desc' ? -1 : 1;

    list.sort(function(a, b){
        a = a[propName];
        b = b[propName];

        if (a === b) {
            return 0;
        }

        var out = a < b ? -1 : 1;
        return out * dirOffset;
    });
}

function log(propName) {
    list.forEach(function(item){
        console.log(item[propName]);
    });
}

function sortAndLog(propName, direction) {
    console.log('Sorted by', propName, direction);
    sort(propName, direction);
    log(propName);
    console.log('------------------------------------');
}

sortAndLog('prop1', 'desc');
sortAndLog('prop1', 'asc');
sortAndLog('prop2', 'asc');
sortAndLog('prop2', 'desc');
于 2012-10-24T06:32:24.030 に答える