2014-11-19 2 views
4

이 작업은 question과 동일하게 수행하려고합니다.jquery dataTable 재설정 정렬

  • 은 내가 한 기능을 HTML에서 읽을 때 사용자가 동일한 모든 열을 선택하기 전에 인 정렬을 재설정 할
  • 데이터 테이블 작업 jQuery를 가지고있다.

나를 멋진 플러그인으로 안내합니다.

jQuery.fn.dataTableExt.oApi.fnSortNeutral = function (oSettings) 
{ 
    /* Remove any current sorting */ 
    oSettings.aaSorting = []; 

    /* Sort display arrays so we get them in numerical order */ 
    oSettings.aiDisplay.sort(function (x,y) { 
     return x-y; 
    }); 
    oSettings.aiDisplayMaster.sort(function (x,y) { 
     return x-y; 
    }); 

    /* Redraw */ 
    oSettings.oApi._fnReDraw(oSettings); 
}; 

내가 "어떻게 작동하도록"잘 모릅니다 그러나

http://datatables.net/plug-ins/api/fnSortNeutral. 누구나 "oApi"가 무엇인지 알거나이 플러그인을 사용하기 전에 더 많은 설정이 필요합니까?

스크립트를 복사 한 직후에 내 스크립트가 Uncaught TypeError: Cannot read property 'oApi' of undefined으로 나타나기 때문에 오류로 인해 함수가 정의되지 않았습니다. 어떻게해야합니까?

답변

2

제공된 링크에 사용 예제가 있습니다. 초기화 할 때

var table = $('#example').dataTable(); 

// Sort in the order that was originally in the HTML 
table.fnSortNeutral(); 

편집은 그에게 "순서"속성을 제공하십시오 : JSBin

jQuery.fn.dataTableExt.oApi.fnSortNeutral = function (oSettings) 
{ 
    /* Remove any current sorting */ 
    oSettings.aaSorting = []; 

    /* Sort display arrays so we get them in numerical order */ 
    oSettings.aiDisplay.sort(function (x,y) { 
     return x-y; 
    }); 
    oSettings.aiDisplayMaster.sort(function (x,y) { 
     return x-y; 
    }); 

    /* Redraw */ 
    oSettings.oApi._fnReDraw(oSettings); 
}; 

$(document).ready(function() { 
    var oTable = $('#example').dataTable({ 
     "order" : [[ 1, "desc" ]] 
    }); 

    setTimeout(function() { 
     oTable.fnSortNeutral() 
    }, 1000) 

}); 
+0

예, 나는이 하나를 시도해야합니다. 'table.fnSortNeutral();'이 실행되기 전에 플러그인 스크립트 자체에는 'Uncaught TypeError : undefined의 oApi'속성을 읽을 수 없으므로 실행할 수 없습니다. –

+0

잘 받았습니다. - 업데이트 된 답변보기 – elzi

+0

감사합니다. 나에게'aaSorting : []'속성을 사용하는 것이 더 낫다. 그리고 reset 정렬 함수를 실행하기위한 버튼을 둔다. 다음은 참조하려는 사람을위한 편집 된 사용법입니다. [JSBin] (http://jsbin.com/bezudiyawu/4/edit?js,output) –

관련 문제