2015-05-29 8 views
5

Si riferisce ai datatables 1.10.x.Impostazione problema td id/nome in DataTables 1.10.x

sto usando this riferimento per creare righe figlio, ed è facile da mettere HTML all'interno del codice javascript che è genereated, in questo modo:

function format (d) { 
    return '<div class="slider">'+ 
    '<table id="expandInput" cellpadding="5" cellspacing="0" border="0" style="margin: 0 auto;">'+     
     '<tr>'+ 
      '<td class="dropHeader">Cost</td>'+ 
      '<td class="dropInfo"><input required type="text" id="cost" name="cost" value="'+d.cost+'"></input></td>'+     
     '</tr>'+      
    '</table>'+ 
    '</div>'; 
} 

Ma questo riguarda solo il figlio bambino che è generato on- clic. Non ho idea di come creare un id o name utilizzando la sintassi dei datatables standard per le celle generate dai dati stessi. L'unico esempio sono stato in grado di trovare sul sito web DataTable riguarda la creazione di un id utilizza lato server

var table = $('#ltc-table').DataTable({  
    "data" : json,   
    "columns" : [ 
     { data : 'cost' }, 
     { data : 'resale' } 
    ], 
    "columnDefs": [ 
    { className: "details-control", "targets": [ 0 ] } 
    ] 
}); 

so di poter impostare una classe di un td utilizzando columnDefs, come dimostrato here, ma non riesco a capire Come aggiungere ulteriori criteri, e ho bisogno di impostare un unico id e name per ogni td che viene generato.

risposta

6

È necessario utilizzare la proprietà createdRow per definire il callback per ogni volta che viene creato un elemento TR per il corpo della tabella.

$('#example').dataTable({ 
    "createdRow": function (row, data, index) { 
     $('td', row).eq(1).attr('id', 'td-' + index + '-1'); 
    } 
}); 

codice $('td', row).eq(1) viene usato per selezionare la seconda cella della riga della tabella con indice a base zero (1 per seconda cella). Il codice attr('id', 'td-' + index + '-1') imposterà l'attributo cell id a td-0-1 per la prima riga, td-1-1 per la seconda riga, ecc., Dove index è indice di riga a base zero.

Vedere this JSFiddle o Row created callback example per dimostrazione.

Problemi correlati