Feste Titelzeile in Tabelle mit variabler Länge und Breite
Markus
- html
Hallo,
ich erstelle über ein PHP-Skript eine Tabelle die unterschiedlich lang und die einzelnen Spalten unterschiedlich breit sein können / müssen.
Die erste Zeile dieser Tabelle enthält eine Titelzeile, die nun, wenn die Tabelle länger als eine Browserseite ist, beim Scrollen immer "oben stehen bleiben soll".
Irgendwie hab ich da momentan keine andere Idee, als zB jede x. Tabellenzeile die Titelzeile neu einzubauen, aber das ist eigentlich nicht das was ich eigentlich möchte ....
Kann mir jemand helfen ?
Vielen Dank.
hallo,
Die erste Zeile dieser Tabelle enthält eine Titelzeile, die nun, wenn die Tabelle länger als eine Browserseite ist, beim Scrollen immer "oben stehen bleiben soll".
Das wirst du mit einer Tabelle allein nicht lösen können. Und wenn es wirklich nur um den "Titel" geht, muß der nicht unbedingt Bestandteil der Tabelle sein und "innerhalb" von ihr liegen. Ein Ausweg wäre, einen schmalen definierten Bereich (DIV) mit fixer Position dafür vorzusehen. Nicht besonders glücklich, aber machbar.
Grüße aus Berlin
Christoph S.
hallo,
Die erste Zeile dieser Tabelle enthält eine Titelzeile, die nun, wenn die Tabelle länger als eine Browserseite ist, beim Scrollen immer "oben stehen bleiben soll".
Das wirst du mit einer Tabelle allein nicht lösen können. Und wenn es wirklich nur um den "Titel" geht, muß der nicht unbedingt Bestandteil der Tabelle sein und "innerhalb" von ihr liegen. Ein Ausweg wäre, einen schmalen definierten Bereich (DIV) mit fixer Position dafür vorzusehen. Nicht besonders glücklich, aber machbar.
Grüße aus Berlin
Christoph S.
Das ist eben leider nicht "nur ein Titel" - konkret ist das ein Kalender, der in der ersten Zeile (Titel) eben die Tage anzeigt und dann drunter mehrere Kalenderzeilen (pro Mitarbeiter). Wenn man dann weiter runter scrollt verschwinden halt leider die Tage und es ist halt ein bisserl mühsam immer bis 31 zu zählen :) ....
morgens,
wenn es wirklich nur um den "Titel" geht [...]
Das ist eben leider nicht "nur ein Titel" - konkret ist das ein Kalender, der in der ersten Zeile (Titel) eben die Tage anzeigt und dann drunter mehrere Kalenderzeilen (pro Mitarbeiter). Wenn man dann weiter runter scrollt verschwinden halt leider die Tage und es ist halt ein bisserl mühsam immer bis 31 zu zählen :) ...
Das verstehe ich noch nicht ganz, weil das jetzt doch auf ein etwas umfangreicheres "Projekt" hindeutet. Bekommt da jeder "Mitarbeiter" seinen eigenen Kalender angezeigt? Und was davon muß feststehen, was davon muß scrollbar sein?
Generell bleibe ich bei meiner Aussage - solange nicht jemand anderes mit einer besseren Lösung daherkommt. Du nimmst einen feststehenden Bereich (DIV), in den du ja mit einer serverseitigen Technik deiner Wahl die nötigen Informationen einlesen kannst, und positionierst darunter einen zweiten scrollbaren Bereich, der die restlichen Zeilen deiner "Tabelle" enthält.
Und jetzt komm mir bitte nicht mit dem bisher schamhaft verschwiegenen Hinweis, daß deine Tabelle ein Exel-File sei. Wenn du als "Tabelle" einen Datenbankeintrag verwenden solltest, wird das Ganze etwas einfacher. Du kannst den festehenden Teil ("Titel" einschließlich Mitarbeitername usw.) in ein oberes fixes DIV einlesen und den Rest eben in ein unteres scrollbares DIV.
Aber mein Verdacht, daß du hinter einer harmlos klingenden Anfrage doch ein erheblich größeres Problem mit einem bestimmten Projekt versteckt hast, wird immer größer ...
Grüße aus Berlin
Christoph S.
Grüezi,
na mit deinem Verdacht liegst Du nicht ganz falsch (der mit dem etwas grösseren Projekt) - Excel kann ich dich beruhigen :) , die Source kommt aus ner Datenbank, wird mit PHP aufbereitet und dann ausgegeben.
Also, zum Inhalt der Tabelle nochmal detaillierter:
In der waagrechten (also quasi x-Achse) habe ich in für jeden Tag des Monats eine Spalte.
Jede Zeile (also y-Achse) enthält dann einen Mitarbeiter und dessen Kalender (pro Tag - wieder in der x-Achse).
Da nun sowohl die Anzahl der Tage pro Monat variiert (ok, da wäre noch handelbar, in dem ich grundsätzlich von 31 ausgehe, und dann halt die entsprechenden Spalten leerlasse), aber insbesondere die Einträge pro Mitarbeiter/Tag unterschiedlich sein können, sind die Spalten "dynamisch veränderbar" breit - folglich auch die Spaltenüberschriften (1. Zeile).
Ich hatte schon überlegt, mit Layern, 2. Table etc zu arbeitn (notfalls sogar mit Frames - no comments pls ...), aber ich weiss eben nicht die definitive Spaltenbreite des Tabellen-Bodys um die Kopfzeile dann entsprechend zu erstellen.
Hoffe das, war jetzt ein bischen verständlicher ...
Nachtrag: hab gerade den Beitrag "Tabelle wie in Excel" entdeckt - der prinzipiell Beispiele zeigt, wie ich sie benötige - einziges Manko (ohne dass ich jetzt die Details geprüft habe), ist wohl dass die Zelleninhalte ein bischen statisch sind :(
Will heissen, bei mir sind mehrere Information gleichzeit in einer Zelle (Tag/Mitarbeiter), unter anderem mit farbcodes vercodet. Gelöst habe ich das ganze über eingebettet Tables pro Zelle.
Hello out there!
Die erste Zeile dieser Tabelle enthält eine Titelzeile, die nun, wenn die Tabelle länger als eine Browserseite ist, beim Scrollen immer "oben stehen bleiben soll".
http://gunnarbittersmann.de/2006/tbody-overflow-20060226.html (leider "nur für Geckos" [MudGuard])
See ya up the road,
Gunnar
Hallo Markus
Die erste Zeile dieser Tabelle enthält eine Titelzeile, die nun, wenn die Tabelle länger als eine Browserseite ist, beim Scrollen immer "oben stehen bleiben soll".
Aus dem Archiv: "fester tabellenkopf"
Auf Wiederlesen
Detlef
Hallo Detlef,
das ist eigentlich genau das was ich gesucht habe! Super und Danke!
Hab jetzt nur noch ein kleines Problem - wenn ich die Lösung im Hauptframe aufrufe funktioniert das einwandfrei. Ich habe aber in meinem Projekt die "übergroße Tabelle" in einem Frame, d.h. die Seite besteht insgesamt aus drei Frames (top, details, bottom), die Tabelle wird im "details"-Frame aufgebaut. Und wenn ich die Lösung dort einsetze, erscheinen überhaupt keine Scroll-Leisten mehr ....
Bin mir sicher, dass das nur irgendein kleiner Parameter ist, der angepasst werden muss, aber leider find ich den nicht ......
Würd mich über ne erneute kleine Hilfestellung freuen !
Viele Grüsse
Markus