数据表中的自定义过滤器不会加载所有数据

Posted

技术标签:

【中文标题】数据表中的自定义过滤器不会加载所有数据【英文标题】:Custom filter in Datatables does not load all data 【发布时间】:2017-07-02 07:45:58 【问题描述】:

这也与 DataTable 有关。我有 2 个自定义过滤器非常相似。一种有效,一种无效。

看看

这个有效

$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) 
    var min = parseInt( $('#min').val(), 10 );
    var age = parseFloat( data[12] ) || 0; // use data for the age column

    if (( isNaN( min )) ||
         ( min == age))
    
        return true;
    
    return false;

它首先加载所有记录,然后在更改时进行过滤。

这个不行

$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) 
var department = $('#department').val();
var dept = data[18]; // use data for the color column
if ( department == dept)//)
    
        return true;
    
    return false;

);

部门下拉值是6,列[18]也是如此

它会进行过滤,但默认情况下,或者如果从列表中选择任何内容(默认值为 ''),它现在将显示整个表格数据。

有人吗?

参考:https://datatables.net/forums/discussion/24959/dropdown-instead-of-search-box

【问题讨论】:

【参考方案1】:

知道了。仅供参考,如果其他人也遇到过这个。

  $.fn.dataTable.ext.search.push(
  function( settings, data, dataIndex ) 
  var department = parseInt( $('#department').val(), 10 );
  var dept = parseFloat( data[18] ) || 0;//data[18]; // use data for the color column
  if (( isNaN( department )) ||
         ( department == dept))
      
          return true;
      
          return false;
  
);

您必须解析 Dropbox 的值以及 parsefloat 列的值。

【讨论】:

以上是关于数据表中的自定义过滤器不会加载所有数据的主要内容,如果未能解决你的问题,请参考以下文章

DataConnect 中的自定义过滤器

Django中的自定义过滤器

DC.js 数据表的自定义文本过滤器

s-s-rS 中的自定义 tablix 过滤器

从 Kentico 10 中的自定义表重复器中过滤重复的列值

动态自定义过滤器在 codeigniter 中不起作用