2014-12-12 2 views
0

테이블로드되기 전에 필터 행 :의 jQuery dataTables - 나는 완벽하게 작동 다음,와 datatables jQuery 플러그인을 사용하여 데이터 테이블을로드하고있어

$(document).ready(function() { 
    $("#buying_datatable").DataTable({ 

     "ajax": { 
      "url": "buying_interests.php", 
      "type": "GET" 
     }, 

     "paging": true, 
     "sDom": '<"top">t<"bottom"><"clear">', 
     "pageLength": 50, 
     "order": [ 
      [1, "desc"] 
     ], 
     "aoColumns": [{ 
       "bSortable": true, 
       "width": "40%", 
       "sClass": "lang_body_2", 
       "sTitle": "Category" 
      }, { 
       "bSortable": true, 
       "width": "20%", 
       "sClass": "lang_body_2", 
       "sTitle": "Database" 
      }, { 
       "bSortable": true, 
       "width": "20%", 
       "sClass": "lang_body_2", 
       "sTitle": "National Average" 
      }, { 
       "bSortable": true, 
       "width": "20%", 
       "sClass": "lang_body_2 index_num", 
       "sTitle": "Index" 
      }, 

     ], 

    }); 
}); 

그러나, 내가 뭘하려는 필터이있다 표에서 열에 특정 값이있는 행만 표시합니다. 예를 들어 0으로 색인화 된 열에 "Education"문자열이있는 행만 표시하십시오 ("Category"코드에서 sTitle 사용). 테이블에 해당 필터링 기준을 충족하는 행만 표시되도록 여기에 항목을 추가하는 방법이 있습니까?

답변

0

당신은 custom row filter을 만들어 그것을 달성 콜드 :

var filterStr = 'Education', 
    filterIndex = 0; 

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex) { 
     return aData[filterIndex].indexOf(filterStr)>-1; 
    } 
); 

이 첫 번째 열은 값이 "교육"을 보유하고 행만 표시됩니다. 소문자를 구분하지 버전 :

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex) { 
     return aData[filterIndex].toLowerCase().indexOf(filterStr.toLowerCase())>-1; 
    } 
); 

데모 ->http://jsfiddle.net/4q2d37r2/

위의 솔루션은 물론 1.9.x로 dataTables의 1.10.x에서 작동합니다.

+0

이 필터를 특정 데이터 테이블에 적용 할 수 있습니까? 한 페이지에 세 개의 데이터 테이블이 있고 각 데이터 테이블마다 다른 필터가 필요하기 때문입니다. – August