ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
299
299
EMPFEHLEN
-
04.06.10 14:35 #1Chysm Tutorials.de Gastzugang
Hallo zusammen,
wie der Titel sagt, habe ich ein kleines Problem beim Clonen eines Tabellenkopfes in einem XHTML-Dokument.
Bei Tabellen die größer bzw. länger sind als eine volle Seite soll beim nach unten Scrollen der Tabellenkopf mit wandern.
Das klappt soweit auch ganz gut, nur werden die Spaltenbreiten der Ausgangstabelle nicht übernommen und dadurch ist ein unschöner Versatz das Resultat.
Die Spaltenbreite setzte ich nach dem Clonen wie folgt:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
for (var i_row = 0; i_row < Math.min(this.FixedRowCount, this.SourceTable.rows.length); i_row++) { ot_cell = this.SourceTable.rows[i_row].firstChild; ft_cell = this.FloatingTable.rows[i_row].firstChild; while (ot_cell != null) { // Check for element node if (ot_cell.nodeType == 1) { ......... ft_cell.setAttribute("width", ot_cell.offsetWidth); }; // if ot_cell = ot_cell.nextSibling; ft_cell = ft_cell.nextSibling; }; // while }; // for
Dabei ist mir aufgefallen, das die offsetwidth der Quellzelle immer 0 ist.
Zuerst hatte ich die Methode beim onload="" im Body-Tag ausgeführt, danach auch auf einen Button gelegt, weil ich dachte das das Dokument zu dem Zeitpunkt noch nicht gerendert
ist und deshalb die OffsetWidth stets 0 ist, aber auch dies brachte keine Änderung.
Habt ihr evtl. einen Vorschlag bzw. einen Lösungsweg?
-
Hallo,
so würde es bei mir funktionieren:
Einzelheiten zum Tabellenobjekt findet man hier (w3schools).Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
<html> <head><title>Tabellentest</title></head> <body> <table id="scrollTable"> <thead> <tr> <th>Spalte_1</th> <th>Spalte_2</th> <th>Spalte_3</th> </tr> </thead> <tbody> <tr> <td>Lorem ipsum dolor sit amet</td> <td>consetetur sadipscing elitr</td> <td>sed diam nonumy eirmod tempor invidunt</td> </tr> <!-- usw. usf. --> </tbody> </table> <p> <a href="#" onclick="alert(getElementById('scrollTable').tHead.[COLOR=Blue]rows[0].cells[0].offsetWidth[/COLOR]);"> Breite der 1. Spalte </a> </p> </body> </html>
-
09.06.10 16:18 #3
- Registriert seit
- Jul 2007
- Beiträge
- 48
Womoeglich ist das Objekt this.SourceTable.rows[i_row].firstChild; so nicht gueltig.
Versuch doch mal die Sache in einer for Schleife zu machen.
Code :1 2 3 4 5 6 7 8 9
for (var i=0; i<this.SourceTable.rows[i_row].cells.length; i++){ ot_cell = this.SourceTable.rows[i_row].cells[i]; ft_cell = this.FloatingTable.rows[i_row].cells[i]; if (ot_cell.nodeType == 1) { // wieder unklar ob Node-Attribute darauf direkt anwendbar sind ......... ft_cell.setAttribute("width", ot_cell.offsetWidth); }; // if }
-
Ähnliche Themen
-
JPanel Clonen?
Von Maddili im Forum JavaAntworten: 4Letzter Beitrag: 12.01.11, 20:34 -
Fieldset Clonen
Von xloouch im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 02.09.10, 09:49 -
Tabellenkopf?
Von Maik20 im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 24.03.09, 17:01 -
Tabellenkopf
Von Crash123 im Forum CSSAntworten: 3Letzter Beitrag: 16.02.09, 12:14 -
Linux Clonen
Von therealcharlie im Forum Linux & UnixAntworten: 1Letzter Beitrag: 27.02.06, 06:41





Zitieren


Login





