2015-06-11 44 views
0

我正在使用datatables和工作正常的yadcf插件。不过,我试图添加一个自定义过滤器,并没有运气让它工作。它似乎被忽略了。datatables yadcf自定义函数未触发

基本上我想筛选细胞是否为空或有数据

我用这个例子作为一个起点: http://yadcf-showcase.appspot.com/DOM_source.html

我的自定义函数是:

function filterGroupName(filterVal, columnVal) { 
    var found; 
    if (columnVal === '') { 
     return true; 
    } 
    switch (filterVal) { 
     case 'Groups': 
      found = columnVal.length > 0; 
      break; 
     case 'No Groups': 
      found = columnVal.length < 1 || columnVal === ''; 
      break; 
     default: 
      found = 1; 
      break; 
    } 

    if (found !== -1) { 
     return true; 
    } 
    return false; 
} 

这里是设置yadcf的脚本的一部分:

{ 
    column_number: 3, 
    filter_container_id: "filter-group-name", 
    filter_type: "custom_func", 
    data: [{ 
     value: 'Groups', 
     label: 'Groups' 
    }, { 
     value: 'No Groups', 
     label: 'No Groups' 
    }], 
    filter_default_label: "Select Groups", 
    custom_func: filterGroupName 

} 

我已经在脚本中设置了一个断点,以查看发生了什么,但它从未被触发

页面获取正确的选择框创建,但选择任一选项都不返回任何条目 - 所有内容都在数据表中被过滤掉。

那么,我错过了什么让函数工作?

谢谢

+0

在filterGroupName中的第一行添加'alert('aaa');'并在调用yadcf之前尝试调用'filterGroupName();'以查看filterGroupName函数是否在该代码范围内可见如果不是,确保它会。 – Daniel

回答

0

我设法解决了这个问题。

在开发过程中,我将列的yadcf的data属性修改为上面的那个。然而,我在状态保存集的数据表,所以原来的过滤器正在使用 - 忽略我对新的过滤器和结果代码的结构所做的任何更改。

我删除状态保存和过滤器来了!