In einer Tabelle Scrollen ohne das der Titel mitscrollt
Sandro
- javascript
Guten Tag,
Ich habe folgendes Problem.
Ich schreibe eine Applikation mit JSP und da ich alle Attribute in einem JSP File habe möchte ist das ganze nur in einem JSP File Programmieren (ohne Frames).
Ich lese Daten aus einer Datenbank und zeige diese in einer normalen HTML Tabelle an.
Mein Problem ist nun, dass ich die Daten in der Tabelle scrollen können möchte, ohne dass meine Titel verschwinden.
Wie ich einen Scrollbereich mit DIV bekomme weiss ich, dass Problem ist, dass man keine Tabelle über ein DIV machen kann.
Meine Überlegung war nun, dass ich 2 Tabellen mache (1 mit den Titeln und 1 mit den Daten) und danch wenn die Tabelle geladen ist, versuche ich die Seiten mit width gleich zustellen. Jedoch möchte ich alles dynamisch haben deshalb kann ich dass mit dem width wieder vergessen.
Auf der Suche nach einer Lösung kam ich auf die Eigenschaft clientWidth diese kann ich jedoch nur auslesen und nicht verstellen. Und wenn ich beide Zellenbreiten (width) jeweils auf die eine clientWidth grösse umstelle funktioniert dies auch nicht (wüsste gerne wieso wenn das jemand weiss).
Ich hoffe ich konnte mein Problem schildern und würde mich auf eine Antwort freuen.
Vielen Dank
Sandro
Guten Tag,
Meine Überlegung war nun, dass ich 2 Tabellen mache (1 mit den Titeln und 1 mit den Daten)
der Ansatz ist okay.
und danch wenn die Tabelle geladen ist, versuche ich die Seiten mit width gleich zustellen. Jedoch möchte ich alles dynamisch haben deshalb kann ich dass mit dem width wieder vergessen.
Kommt eine prozentuale Breite der Spalten infrage?
Dann schau mit Firefox mal hier:
http://www.aktivferien.de/tm3/v3/aussteller_a.htm
Mache dann das Fenster so klein, dass ein Scrollbalken entsteht. Da ich beim Drucken der Seite einen <thead> benötige (Überschrift auf Folgeseiten) habe ich zunächst eine normale Tabelle.
Per Javascript kopiere ich den <thead> in den zuvor definierten fixen Bereich. Es liegt jetzt der fixe Bereich über dem genau gleich aussehendem Titel der Seite. Der Titel scrollt zwar mit weg, aber das sieht ja keiner.
Für den Druck kann ich den fixen Bereich jedoch nicht gebrauchen, deshalb schalte ich ihn mit CSS ab.
Kalle
Hallo Kalle
Erstmal Dankeschön für die rasche Antwort.
Kommt eine prozentuale Breite der Spalten infrage?
Leider habe ich eine Spalte mit Bezeichnungen welche sehr unterschiedliche grössen hat, deshalb möchte ich auf prozentuale angaben verzichten.
Jedoch hasst du mein Problem genau richtig erkannt :D
Hallo Sandro
Leider habe ich eine Spalte mit Bezeichnungen welche sehr unterschiedliche grössen hat, deshalb möchte ich auf prozentuale angaben verzichten.
Unterschiedlich lange Bezeichnungen habe ich auch. Da aber auch die anderen Spalten der Tabelle ihren Inhalt haben, darf durch eine überlange Bezeichnung nicht das Layout "platzen".
Deshalb kürze ich Texte. Frage ab, ob Textlänge größer als z.B. 25 Zeichen. Wenn ja, nimm die ersten 23 und noch zwei Punkte.
Manchmal unterscheiden sich Bezeichnungen ganz hinten, wohl eine deutsche Spezialität. Beispiel:
Markenname Erfrischungsgetränke und Vertrieb Köln
Markenname Erfrischungsgetränke und Vertrieb Dortmund
Die 44 vorderen Stellen sind gleich. Deshalb werde ich in der nächsten Programmversion die Mitte rauskürzen, also
Markenname Erfri...eb Köln
Bei mir geht das, da die Tabellen Übersichten sind, die durch Mausklick zu den eigentlichen Bearbeitungsprogrammen führen. Wenn jemand auf die Idee kommt, das Fenster besonders klein zu machen, wird ein Tabellen- Row mehrzeilig. Macht für die Bearbeitung der Daten aber überhaupt keinen Sinn.
LG Kalle
Hello out there!
Mein Problem ist nun, dass ich die Daten in der Tabelle scrollen können möchte, ohne dass meine Titel verschwinden.
In Geckos geht das mit CSS: < http://gunnarbittersmann.de/2006/tbody-overflow-20060226.html>
Vielleicht hilft dir Gernots Feature-Artikel „Übergroße Tabellen in koordiniert scrollenden Frames“?
See ya up the road,
Gunnar