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