2015-05-29 4 views
5

Dies bezieht sich auf Datatables 1.10.x.Problem beim Festlegen einer TD-ID/eines Namens in DataTables 1.10.x

Ich verwende this Referenz Kind Zeilen zu erstellen, und es ist einfach, innerhalb des Javascript-Code HTML zu setzen, die genereated ist, wie folgt aus:

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>'; 
} 

Aber das wirkt sich nur auf das Kind Kind, das on- generiert wird klicken. Ich habe keine Ahnung, wie man eine id oder name mit der Standard-Syntax für Databases für die Zellen erstellt, die sich selbst erzeugt. Das einzige Beispiel, ich in der Lage war, auf Datentabellen Website zu finden, bezieht sich auf einen id Erstellen mit Server-Seite

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

Ich weiß, dass ich eine Klasse eines td einstellen columnDefs verwenden, wie here gezeigt, aber ich kann nicht verstehen heraus, wie man zusätzliche Kriterien hinzufügt, und ich muss einen eindeutigen id und name für jeden td, der erzeugt wird, einstellen.

Antwort

6

Sie müssen die Eigenschaft createdRow verwenden, um einen Rückruf zu definieren, wenn ein TR-Element für den Tabellenkörper erstellt wird.

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

$('td', row).eq(1)-Code wird verwendet, die zweite Zelle in der Tabellenzeile auszuwählen, unter Verwendung von Null-Basis-Index (1 für die zweite Zelle). Der Code attr('id', 'td-' + index + '-1') setzt diese Zelle id Attribut auf td-0-1 für die erste Zeile, td-1-1 für die zweite Zeile usw., wobei index ist Null-basierten Zeilenindex.

Zur Demonstration siehe this JSFiddle oder Row created callback example.

Verwandte Themen