数据表过滤器数量大于

时间:2018-10-22 19:48:58

标签: javascript datatables

我正在使用datables,我需要过滤其值大于50的特定列,我尝试使用以下代码,但没有任何反应

oTable.api().column( 10 )
  .data()
  .filter( function ( value, index ) {
     var htmlObject = $(value);
     var ball = htmlObject.text();
     return parseInt(ball) > 50 ? true : false;
   })
  .draw();

2 个答案:

答案 0 :(得分:2)

“什么也没有发生”,因为预计什么也不会发生。 filter()应该用于创建内部数据集或提取数据的子集-如果要过滤表中的行,应使用custom filter。看起来可能像这样:

$.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
  return data[10] > 50 //type conversion is not necessary
})

之前 .search()(和其他过滤器),它用作“主”过滤器。如果要删除过滤器,则可以使用$.fn.dataTable.ext.search.pop()。所以

  1. $.fn.dataTable.ext.search.push( filter function )
  2. table.draw()
  3. $.fn.dataTable.ext.search.pop()

答案 1 :(得分:1)

如果要检查大于5的任何数字,则可以使用dataTable中的隐藏列编写三进制条件。 使用过滤器将MORETHAN5RECORD作为值添加到选择下拉列表中,以过滤5条以上的记录。

Here is the Code :
var table = $('#record_table').DataTable({});
$('.FILTERCLASS').on('keyup change', function () {
		buildFilters(table,this);
});	
	
function buildFilters(table, element){					
    var type = $(element).data('type'),
        col = $(element).data('col'),
        id = $(element).id;   
      table
          .column( col )
          .search( element.value )
          .draw();
    }
 <td><?php 
echo (($row['xyz'] >= 5) ? $val['xyz']."(MORETHAN5RECORD)" : $val['xyz']); ?> </td>