Числа фильтра Datatables больше чем

1

Я использую 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();
Теги:
datatables

2 ответа

2

"Ничего не происходит", потому что ничего не ожидается. 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()
0

Если вы хотите проверить любое число больше 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> 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню