2016-04-11 6 views
1

ich eine TabellenzeileWie die letzte Tabellenzeile in Datentabellen markieren

mytable.row.add(getTableRow(data.report)).draw(); 


function getTableRow(report) { 
    var id = report.id; 
    var date = report.create_date; 
    return [ 
     "<a href=\"/date/" + id + "\">" + date + "</a>", 
     user 
    ]; 
} 

mit erschaffe Wie kann ich die Tabellenzeile markieren, sobald ich es ziehen?

Hier ist meine Tabellenstruktur

 <table class="table-bordered" id="mytableid" cellspacing="0" width="100%"> 
     <thead> 
      <tr> 
       <th width="20%">Date</th> 
       <th width="20%">User</th> 
      </tr> 
     </thead> 
     <tbody> 
      <td> 
      <i class="fa fa-spinner fa-spin"></i> 
      <span> </span> 
      Loading... 
      </td> 
      <td></td> 
      <td></td> 
     </tbody> 
    </table> 

Dank

Antwort

1

Ich denke, ich habe eine bessere Lösung. Nutzen Sie Tables to$() Methode, die Sie auf den internen Knoten als jQuery Objekte funktioniert, und verwenden Sie einen JavaScript-with Anweisung beide fügen Sie eine .newRow Klasse und draw() die neue Zeile:

with (mytable.row.add(getTableRow(data.report))) { 
    nodes().to$().addClass('newRow') 
    draw() 
} 

Demo ->http://jsfiddle.net/hzvskp77/

1
diese

Versuchen

$('#yourTableId tr.highlight').removeClass('highlight'); //remove any pre existing class 
$('#yourTableId tr a.latest').removeClass('latest'); //remove class from any exiting anchor tag 

mytable.row.add(getTableRow(data.report)).draw(); 

$('#yourTableId tr a.latest').closest('tr').addClass('highlight'); 

function getTableRow(report) { 
    var id = report.id; 
    var date = report.create_date; 
    return [ 
     "<a href=\"/date/" + id + "\" class="latest">" + date + "</a>", 
     user 
    ]; 
} 

Auch diese CSS-Regel haben

tr.highlight td{ 
background-color: yellow; 
color:black; 
} 

Idee ist es, eine Klasse der einzustellen Anchor-Tag sagen latest und wenn die Tabelle neu gezeichnet wurde, suchen Sie dieses Anchor-Tag mit dieser Klasse und gehen Sie dann zu ihrem 'tr' über und fügen Sie eine Klasse namens highlight hinzu. Für diese Klasse haben wir das CSS, das das Aussehen dieses tr verändern wird.


Edit 1: Sie müssen für die Tabelle warten, um die Auslosung zu vervollständigen und dann die Highlight-Klasse hinzufügen. Also benutze diese Syntax.

$('#myTable ').dataTable({ 
    // other stuff 
    "drawCallback": function(settings) { 
     $('#myTable tr a.latest').closest('tr').addClass('highlight'); 
    } 
}); 
+0

Ich habe das mit Ihrem CSS versucht, aber es hat nicht funktioniert $ ('# myTable tr.highlight'). RemoveClass ('highlight'); \t \t \t \t $ ('# myTable tr a.latest'). RemoveClass ('neustes'); \t \t \t \t myTable.row.add (getTableRow (Datenbericht)). Draw(); \t \t \t \t $ ('# myTable tr a.latest'). Am nächsten ('tr'). AddClass ('highlight'); 'mit' Funktion getTableRow (Bericht) { \t var id = report.id; \t var date = report.create_date; \t return [ \t \t "" + date + "", \t \t Benutzer \t]; ' – aaj

+0

@lovesoftlayeraj meine Antwort aktualisiert. Wenn Sie ein Häkchen haben, müssen Sie dieses 'drawCallback' hinzufügen, während Sie das Databases-Plugin initialisieren. –

+0

Problem ist, dass ich die Datentabelle beim Laden der Seite bereits initialisiert habe. (Ich habe versucht, deine Funktion dort hinzuzufügen). und dann, wenn ich eine Zeile erzeuge, mache ich einfach 'myTable.row.add (getTableRow (data.report)). draw();' und gehe dann nicht zurück zur Initialisierungsfunktion der Datentabelle. – aaj

Verwandte Themen