2012-10-23 7 views
-1

내 페이지의 jQuery 템플릿에 바인딩하는 개체의 동적 컬렉션이 있습니다. 클라이언트 측에서 가지고있는이 객체 컬렉션은 List<T>이며 내 서버에서 반환되었습니다. T은 모든 클래스의 객체가 될 수 있습니다. 예를 들어 :jQuery를 사용하여 개체의 데이터 컬렉션을 정렬하는 방법

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

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

는 이제 클라이언트 측에 List<Employee> 또는 List<Companies> 보내드립니다 사용자 요청을 기반으로. 이제 jquery를 사용하여 클라이언트 측에서이 목록을 정렬 할 수 있는지 궁금합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

+1

어떤 언어입니까? 또한 자바 스크립트로 정렬하면 jQuery는 DOM API를 래퍼합니다. –

+0

이 항목을 확인하십시오 http://stackoverflow.com/questions/5503900/how-to-sort-an-array-of-objects-with-jquery-or-javascript –

+0

클래스가 C#에 있습니다. 이 클래스의 객체 컬렉션을 내 클라이언트 측에 반환합니다. 나는 jQuery 나 javaScript를 사용하여 그것들을 정렬 해 주면 행복 할 것이다. 예를 들어 직원 목록을받을 때 나이/이름/ID별로 정렬하고 싶다고 말하면됩니다. –

답변

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'); 
+0

답변 주셔서 감사합니다, 그것은 정말로 도움이 –

+0

하지만 * jQuerys * 무엇입니까 ?? –

+0

아마도 $ sort 함수를 호출하면? –

0

jQuery를 그것은에 관해서가 아니라 가장 DOM을 조작하는 라이브러리입니다 문자열. 나는 당신이 underscore.js을 점검한다고 말할 것입니다.

언더 코어 문서는 훌륭하고 간단합니다. 원하는 것을 쉽게 성취 할 수있는 방법을 찾을 수 있습니다.