본문 바로가기
Ajax

jquery를 이용한 ajax 테이블 정렬 순서변경

by 샷타이거 2010. 2. 17.

jquery를 이용한 ajax 테이블 정렬 순서변경

오름차순과 내림차순 방법으로 모두 정렬하려면 이번엔 다른 키코드를 삽입해야 한다. 이제까지는 오름차순만 사용했지만 이번에 변수를 넣어서 클릭시 차순이 변화되도록 해보자.

 if (a.sortKey < b.sortKey) return -1;
 if (a.sortKey > b.sortKey) return 1;
 return 0;

저번에 보았던 비교 값을 이용한 정렬이다. 만약 숫자가 작다면 -1 값을 반환 크다면 1을 반환 상관없으면 0을 반환하도록 되어있다. 이를이용하여 오름차순으로 정렬되게 했다. 자그럼다음코드를 보자

 if (a.sortKey < b.sortKey) return 1;
 if (a.sortKey > b.sortKey) return -1;
 return 0;

이 경우는 단지 결과값에 1과 -1을 바꾸어 주었을뿐이다.따라서 그결과값도 내림차순으로 나온다,.이번엔 반환하는값을 클릭에 따라다르게 하여 오름차순, 내림차순을 보두 고려해보자

 var sortDirection = 1;
 if ($header.is('.sorted-asc')) {
 sortDirection = -1;
  }

반환하는 값을 위하여 변수를 sortDirection으로 지정해주었다.기본값을 1로 정해주었고 그상태가 반대라면 -1로 주도록되어있다.클래스명을 sorted-asc(오름차순의 경우),sorted-desc(내림차순의 경우)로 주도록 하겠다.

 $table.find('th').removeClass('sorted-asc')
    .removeClass('sorted-desc');
      if (sortDirection == 1) {
       $header.addClass('sorted-asc');
          }
      else {
       $header.addClass('sorted-desc');
        }

마지막으로 적용한 것이다.th엘리먼에서 앞에미리 기본값으로 sorted-asc를 붙인것을 지우고 sorted-desc을 붙인다. 현재값에 따라 오름차순 내림차순으로 바뀌게 된다.

요약

그전과 차이점은 단순 리턴하는 값을 변수하나를주어서 다르게 했을 뿐이다.

  • 먼저 변수이름을 지정한다.sortDirection 이라고 정했다.
  • 반환될 기본값을 결정한다 1
  • 클릭시 변할 클래스명을 정한다.sorted-asc(오름차순의 경우),sorted-desc(내림차순)
  • 현재값이 sorted-asc 이면 sorted-desc으로
  • 반대로 현재값이 sorted-desc 이면 sorted-asc으로 되도록 정한다.

완선된 예제를 보려면 여기로http://sianasiatiger.cafe24.com/study/T_usetableArry.html

댓글