with createdrow created columns columndefs jquery-datatables

jquery datatables - createdrow - Agregar un atributo "id" a una fila de Datatable



jquery datatable add row with id (3)

Aquí hay un fragmento de código recortado donde agrego una nueva fila a mi tabla y luego intento agregar el atributo de identificación al "tr" resultante para que la fila pueda ubicarse más tarde. ¿Quizás la fila aún no se haya renderizado cuando intento agregar el atributo? ¿Hay una mejor manera de lograr esto?

test = [0,1,2,3,4,5,6,7,8,9,10]; node = $(''#MyDataTable'').DataTable().row.add( test ); // this doesn''t seem to work - need to end up with: "<tr id=''MyUniqueID''>" node.to$().attr(''id'', ''MyUniqueID'' );


En Jquery DataTables, los datos generalmente se agregan con fnAddData() , que devuelve un índice (o múltiples índices si se inserta más de una fila) de la fila que acaba de agregar. Puede usar ese índice para ubicar la fila con fnGetNodes()

test = [0,1,2,3,4,5,6,7,8,9,10]; var rowIndex = $(''#MyDataTable'').dataTable().fnAddData(test); var row = $(''#MyDataTable'').dataTable().fnGetNodes(rowIndex); $(row).attr( ''id'', ''MyUniqueID'' );


Puede usar la devolución de llamada "createRow" como esta:

$("#your-id").DataTable({ // Define custom handler for createdRow event "createdRow" : function( row, data, index ) { // Add identity if it specified if( data.hasOwnProperty("id") ) { row.id = "row-" + data.id; } } }); // Add some data var data = ["col-1","col-2","col-3","col-4"]; // Arrays are objects in javascript, so you can add custom properties to your array and read them in createdRow callback data.id = "your-id"; // Create row in ordinary way $("#your-id").row.add(data) .draw();


Podemos agregar atributos para las filas después de la tabla representada usando fnRowCallback

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) { if(aData[0] == "A"){ $(nRow).attr( ''data-blah'',"modal" ); $(nRow).attr( ''style'',"display:none" ); } }

Para más detalles sobre fnRowCallback

Demostración de trabajo