stwe / DatatablesBundle

This Bundle integrates the jQuery DataTables plugin into your Symfony application.
355 stars 237 forks source link

Hidden DateTimeColumn is all empty when switched to visible until reload #980

Open knallcharge opened 2 years ago

knallcharge commented 2 years ago

I'm seeing a strange behavior when using a DateTimeColumn which has "visible = false": When I initially load the datatable, the column is hidden, swichting it to visible using the column chooser, will make it visible, but all cells are empty.

grafik

When I reload the table (with the column set to visible), the data is show, this also happens if I just click the "X" next to the filter of the DateTimeColumn.

grafik

This does not seem to happen with any other column type.

Maybe there's some workaround to simulate a click on the "X" when switching a DateTimeColumn to visible?

knallcharge commented 2 years ago

I found a workaround, added this to the controller: $this->events->set(['column_visibility' => ['template' => 'columnVisibilityEvent.js.twig', 'vars' => ['tableName' => $this->getName()]]]);

and added columnVisibilityEvent.js.twig like this:

function columnVisibilityEvent(e, settings, column, state) {
    if (state == true) {
        var table = $("#sg-datatables-{{ tableName }}").dataTable();
        table.fnDraw(false);
    }
}

This redraws the table if a hidden column is switched to "visible". Don't know if it's a proper solution but it seems to work.