Refrecar data datable

Refrecar data datable

bishootbishoot Posts: 2Questions: 0Answers: 0
edited April 2020 in Free community support

Buen día, Actualmente tengo una tabla de hide automatico de columnas, la cual cargo desde un metodo jquery ajax, luego de cargar el tbody de la tabla lo que hago es cargar la configuración del datatable y evaluo con la funcion$.fn.dataTable.isDataTable, he usado el destroy, retrive, clear y draw.

Una vez realizo una actualización,creación o eliminación de un registro de la tabla, lo que hago es nuevamente cargar toda la información de la tabla. cuando cuando hago esto lo que esta pasando es que las columnas ocultas del datatable se despliegan todas como columnas y se daña la visual de la tabla. cuando utilizo el metodo destroy o draw el sistema me acomoda nuevamente la tabla pero me muestra los valores de la tabla como si no hubiera realizado cambios. Si doy f5 a la pantalla se pintan los datos con los cambios correspondientes.

En estos casos que debo de hacer para que cuando realice un cambio, y actualice la tabla:
1- La tabla quede con las columnas ocultas correspondiente al tamaño del dispositivo
2- Que los datos de la tabla se observen actualizados correctamente

Gracias

Replies

  • bishootbishoot Posts: 2Questions: 0Answers: 0

    Encontré la solución la comparto para todos ustedes:

    1- Crear una variable global del datatable ej: table
    2- Al llamar el metodo donde se pintan los datos sobre el body realizar los siguientes pasos:
    2.1) borrar los datos del tbody ej: tblBody.empty();
    2.2) evaluar si el objeto global es diferente de nulo, si lo es ejecutar las siguientes lineas dentro del if ej:
    =>table.clear().draw();//Elimina los datos del objeto global y lo dibuja en la tabla
    => table = $("#tblDatatable").dataTable().fnDestroy();//Destruye el componente datatable para permitir inicializarlo nuevamente nuevamente

    2.3) pintar los datos sobre el tbody
    2.4) una vez pintados todos los datos inicializar nuevamente dataTable con toda su configuración ej:

    table =$("#tblDatatable").DataTable({responsive: true});

    FIN, de esta forma el dataTable no guardara el cache como me estaba pasando, espero les sirva de mucha ayuda

This discussion has been closed.