column.searchable does not seem to work like column.visible
column.searchable does not seem to work like column.visible
Hello,
I was trying to implement a column hiding feature and thanks to the example it works great.
$(document).ready(function() {
var table = $('#example').DataTable( {
"scrollY": "200px",
"paging": false
} );
$('a.toggle-vis').on( 'click', function (e) {
e.preventDefault();
// Get the column API object
var column = table.column( $(this).attr('data-column') );
// Toggle the visibility
column.visible( ! column.visible() );
// my addition
column.searchable( ! column.searchable() );
} );
} );
However I added a small piece... the ability to once the column is visible to make it searchable as well... and this throws an error: Uncaught TypeError: undefined is not a function ... I checked the API -- yeah that doesn't exist in the way I am trying to use it.
My question: Any ideas on how to do this ? make a column searchable after table has been initialized?
This question has an accepted answers - jump to answer
This discussion has been closed.
Answers
There is no
column().searchable()method. Did you find something in the documentation that suggests there is? If so, could you point me at it so I can remove it.Having said that, it probably is a good idea for me to add it - it makes sense...
Allan
Hi Allan,
No nothing in the documentation states this... I was stating how my train of thought was flawed.
My question is, does anyone know of a way to change the searchable state of a column after the table has been initialized?
There is no option to do that I'm afraid. I don't think there is even a hack using the private methods that would do that (well... there probably is, but I don't know what it is without researching it, and I'm traveling atm so a bit tricky!).
Out of interest, why would you want to change that state? That's why that option isn't available atm - I couldn't think of a reason why it would be needed - and thus there was no need to add the code overhead for it.
Allan
A way around came to me.
I am using dynamically hidden columns.
I will turn all columns to searchable=true
then all columns that are hidden will become null values via javascript filter
as columns become visible I will un-null the values. The down side is creating a copy of the objects in memory.-- especially since I have a pretty large data set.