【问题标题】:datatables yadcf custom function not triggered数据表 yadcf 自定义功能未触发
【发布时间】:2015-06-11 11:19:12
【问题描述】:

我正在使用运行良好的数据表和 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

}

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

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

那么,在使该功能正常工作时我错过了什么?

谢谢

【问题讨论】:

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

标签: datatable yadcf


【解决方案1】:

我设法解决了这个问题。

在开发过程中,我将列的 yadcf 的数据属性修改为上面的。但是,我在数据表上设置了状态保存,因此使用了原始过滤器 - 忽略了我对新过滤器的结构和生成的代码所做的任何更改。

我删除了状态保存,过滤器恢复了活力!

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    相关资源
    最近更新 更多