2015-02-02 11 views
0

해당 열에 sType : "my-num-html"로 정의 된 사용자 지정 정렬 코드가 있습니다.datatables 사용자 지정 정렬 (사전 활성화 만)

내 열 데이터는 다음과 같이이다 :

  • AB 332
  • 등 기본적으로 BC 664
  • CD 325
  • KF 576

그리고 주문 :

  • CD 325
  • BC 그것은 완전히 문자를 무시 664

... 나는이 편지를 무시하지 만들려고 노력하고있어 576

  • AB 332
  • KF.

    가 그럼 난 "dataTables.naturalSort.js"에 확장 한

    jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
         "my-num-html-pre": function (a) { 
          console.log("my-num-html pre"); 
          var x = String(a).replace(/<[\s\S]*?>/g, ""); 
          console.log("nh: " + x); 
          return x; 
         }, 
    
        "my-num-html-asc": function (a, b) { 
         console.log("my-num-html asc"); 
         return naturalSort(a, b); //((a < b) ? -1 : ((a > b) ? 1 : 0)); 
        }, 
    
        "my-num-html-desc": function (a, b) { 
         console.log("my-num-html desc"); 
         return naturalSort(a, b) * -1; //((a < b) ? 1 : ((a > b) ? -1 : 0)); 
        } 
    }); 
    

    문제는 ... 사전 인쇄 문자를 무시해서는 안되며 오름차순/내림차순 기능을 인쇄해야한다는 것입니다 내 로그의 열 (console.log 사용).

    페이지가로드되면 "사전"로드되지 않습니다.

    열 머리글을 클릭하면 : 미리로드되지만 그게 잘못된 순서입니다.

    다시 클릭하면 사전로드가 다시로드되지만 잘못된 순서가 적용됩니다.

    "asc"및 "desc"로그는 절대로 인쇄되지 않습니다.

    EDIT :: AJAX "fnserverdata"가 사용되고 있으며 호출 될 때마다 주문이 AJAX 데이터로 다시 설정됩니다.

  • 답변

    0

    서버 측에서 정렬 중이 었는데 왜 그 코드가 활성화되지 않았는지 말할 수 없습니다. 나는 왜 그것이 나중에 커스텀 정렬로 정렬되지 않는지 알아 내지 못했다.