Dynamically detect which column contains long text then do ellipsis on that column.

Dynamically detect which column contains long text then do ellipsis on that column.

woodmanhuwoodmanhu Posts: 3Questions: 2Answers: 0

So far I'm able to find the long text column by matching column names like :

$.each(TableColumns,function(id,name){
if(column_name == 'description'){
ColumnDefs.push({
targets: id,
render: $.fn.dataTable.render.ellipsis(20)
})
}
})

But most of time the table is generated dynamically. Columns are defined by previous selections.
I'm thinking a way to say:
$.each( data that is returned from ajax call, function(id, value){
if( value.length > 200 characters ){
ColumnDefs.push({
targets: id,
render: $.fn.dataTable.render.ellipsis(20)
})
}
})

But often time there are thousands of data being returned and looping one by one just for testing the length is not so efficient.

Is there a existed Option or plug-in to auto detect the length of data then do ellipsis for that column?

Answers

  • allanallan Posts: 63,455Questions: 1Answers: 10,465 Site admin

    The best I can offer is that you modify the ellipsis plug-in so that you can give it a cut point (the 20) and also a cut off point (the 200 in this case) - so that the plug-in itself can use that conditional logic to decide when to activate or not.

    Sounds like a useful extension to its current abilities!

    Allan

  • woodmanhuwoodmanhu Posts: 3Questions: 2Answers: 0

    Yes that's the same solution I realized as well. Thanks for your answer!

This discussion has been closed.