Hola, estoy usando jquery datatable en mi página MVC, así que en 1 página tengo que enviar todos los datos de la tabla de datos al controlador. Entonces, lo que hice fue poner todos los datos en 1 matriz y se los pasé al controlador. usando código
var AllSelectedData = []; var selected = []; table = $('#Distpopup').DataTable(); table.rows().every(function () { var d = this.data(); AllSelectedData.push(d); }); $("#dtlist").val(AllSelectedData);Está funcionando bien para la tabla de datos vinculada al modelo, pero en 1 caso tengo una tabla de datos vinculada mediante ajax, en ese caso no funciona. Cualquier sugerencia
Puede acceder a todas las filas de la tabla en enlace de modelos y también en Ajax.
por ejemplo, esta es su inicialización de tabla de datos.
var table = $('#Distpopup').DataTable();Después de agregar datos a la tabla, desea obtener estos datos en una matriz. Si desea enviar datos al controlador, use JSON.stringify() para encadenar sus datos y luego enviarlos al controlador y puede usarlos en el enlace del modelo con un campo de formulario o también puede pasar estos datos encadenados usando la solicitud Ajax.
var AllSelectedData = []; table.rows().every(function () { var d = this.data(); AllSelectedData.push(d); }); $("#dtlist").val(JSON.stringify(AllSelectedData));También me enfrento a este problema, veo esta pregunta que todavía no tiene respuesta.
Puede usar devoluciones de llamadas de tablas de datos, http://legacy.datatables.net/usage/callbacks
Una forma de hacerlo usando la función de devolución de llamada initcomplete que funciona cuando la tabla se ha inicializado.
$('#Distpopup').DataTable({ //Other settings "fnInitComplete": function (oSettings, json) { console.log(json.data); }, });Otra forma de usar la función createdrow que funciona con cada fila creada
var AllSelectedData = []; $('#Distpopup').DataTable({ //Other settings "createdRow": function (row, data, index) { AllSelectedData.push(data); }, });