2009-03-20 14 views
0

Was ist der beste Weg, um die Sichtbarkeit einer Zeile (n) zu deaktivieren und die Lücken zu entfernen. Auch umgekehrt, wenn die Sichtbarkeit eingeschaltet wird, um sicherzustellen, dass die sichtbaren Zeilen erneut angezeigt werden.HTML-Tabellenzeilen

Antwort

4

Wenn Sie dies auf dem Client (d. H. Über Javascript) tun möchten, versuchen Sie die style.display auf 'none' (und 'Block', um es wieder einzuschalten).

Wenn Sie es auf dem Server behandeln möchten, setzen Sie die Sichtbarkeit der Zeile auf false, dies verhindert, dass die Zeile gerendert wird.

Bearbeiten - Mit Beispiel:

 
function ShowHideRow(row, show) 
{ 
    document.getElementById(row).style.display = (show ? 'block' : 'none'); 
} 

Notiz können Sie möchten die Beratung von Mufasa und verwenden table-row statt Block folgen.

+0

Sie Chris danken. Schätze deine Hilfe. –

1

Sie müssen die Eigenschaft 'display' der Zeile (die) auf 'none' setzen. Entweder mit JavaScript wie von Chris oder mit CSS.

+0

Echilon, danke auch für deine Hilfe. Ich habe versucht, was Chris und Mufasa gesagt haben, auch das "None" und "Block" funktioniert jetzt. –

0

Chris hat Recht, außer das Zurücksetzen des Wertes auf den korrekten Tabellenanzeigetyp wäre etwas korrekter, wenn er erneut angezeigt wird. Für eine <TR> würden Sie display: table-row verwenden. Siehe CSS Display Property.

Update: bobince Antwort ist eine praktische Antwort auf wie das Display-Attribut zu verwenden (und nicht verwenden).

+0

Mufasa, vielen Dank für Ihre Hilfe. –

4

Wenn Sie es mit der Anzeigeeigenschaft tun, wie es bisher vorgeschlagen wurde, müssen Sie sich Gedanken über Block vs. Tabellenzeile machen. table-row ist korrekt, aber IE unterstützt es nicht, also müssen Sie browser-sniff wählen.

Potenziell einfacher ist, den Stil direkt zu vermeiden Einstellung, es mit einer CSS-Klasse Regel stattdessen tun:

tr.hidden { display: none; } 

row.className= 'hidden'; // sets display to none 
row.className= ''; // resets display to its default value 
+0

Vielen Dank für Ihre Hilfe. Ich werde diese Option auch versuchen. –

+0

Ich möchte nur anmerken, dass Sie versuchen könnten, Ihrem Klassennamen einen "semantisch sinnvolleren" Namen zu geben, wie "deaktiviert" und nicht "versteckt". Sie können die Zeile trotzdem später anzeigen und grau schattieren, anstatt sie zu verbergen. In diesem Fall macht der Klassenname keinen Sinn. – Rahul