datatables yadcf custom function not triggered

801 views Asked by At

I'm using datatables and the yadcf plugin which is working well. However I'm trying to add a custom filter and having no luck getting it to work. It appears it is being ignored.

Basically I want to filter whether a cell is empty or has data

I used this example as a starting point: http://yadcf-showcase.appspot.com/DOM_source.html

My custom function is:

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;
}

And here is the part of the script that sets up 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

}

I've set a breakpoint in the script to see what's happening but it never gets triggered

The page gets the correct select boxes created but selecting either option returns no entries - everything is being filtered out in the datatable.

So, what have I missed in getting the function to work?

Thank you

1

There are 1 answers

0
Ray On

I'm managed to work out the problem.

During development I modified the data property of yadcf for the column to that above. However I had state save set on datatables so the original filter was being used - ignoring any changes I made to the strucuture of the new filters and the resulting code.

I removed state save and the filter came to life!