Finn: IFrames & Tables

Hallo,

ich habe folgendes Anliegen, welches mir schon seit einiger Zeit Kopfzerbrechen bereitet.

Es geht um folgendes:
Ich habe eine Tabelle mit Daten in einem IFRAME und würde gerne die Spaltenüberschriften über dem IFRAME darstellen, sodass diese nicht mit-scrollen.

Die Frage ist nun, wie ich diese zwei, erstmal völlig unabhängigen Tabellen (wenn man die Überschriften ebenfalls als Tabellenzeile darstellt) so "synchronisiere", dass die Spaltenbreiten übereinstimmen.

Alle CSS-Versuche mit "display: xxx" etc. schlugen bisher fehl. Ich würde mich sehr über einen Lösungsvorschlag freuen. Dieser muss nicht mit einem IFRAME umgesetzt sein - es geht um eine "scrollable" Tabelle mit "fixen" Spaltenüberschriften.

Vielen Dank!

Gruß,
Finn

  1. Hallo,

    schon mal mit zwei IFrames versucht?

    IFrame 1 - fixe Breite - enthält Spaltenüberschriften und zweiten IFrame - ebenfalls fixe Breite - der dann die Datentabelle enthält...

    So solltest Du nur wenig Positionierungsprobleme haben, schätze ich...

    Oder Du baust eine komplexe DHTML Lösung mit eigenen Scrollbars. Vielleicht kannst Du dazu vorgefertigte Scripte von dhtmlcentral.com nutzen...

    Gun

    1. schon mal mit zwei IFrames versucht?

      IFrame 1 - fixe Breite - enthält Spaltenüberschriften und zweiten IFrame - ebenfalls fixe Breite - der dann die Datentabelle enthält...

      So solltest Du nur wenig Positionierungsprobleme haben, schätze ich...

      Hmm, das wird dann aber trotzdem nicht dazu führen, dass die einzelnen Spalten der Überschrift die gleiche Breite haben, wie die korrenspondierenden Spalten im Datentable.

      Oder Du baust eine komplexe DHTML Lösung mit eigenen Scrollbars. Vielleicht kannst Du dazu vorgefertigte Scripte von dhtmlcentral.com nutzen...

      DHTML ist (leider) nach der Spezifikation ausgeschlossen. :-(

      Trotzdem danke!

      Gruß,
      Finn

  2. Hallo,

    Alle CSS-Versuche mit "display: xxx" etc. schlugen bisher fehl.

    Die Breite von Dingen (z.B. von Tabellenzellen) gibt man auch nicht
    mit display: xxx an, sondern mit width: ...
    http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#width
    td.spalte1 { width:50px; }
    td.spalte2 { width:200px; }
    u.s.w.

    Alternativ koenntest Du die Breite der Zellen mit veralteten
    HTML-Attributen festlegen.
    http://selfhtml.teamone.de/html/tabellen/gestaltung.htm#breiten_hoehen

    Ein Iframe finde ich hier schlecht - nicht nur, weil der Netscape 4
    dieses Element gar nicht kann, sondern weil die Tabellendaten,
    die doch eigentlich ins Dokument gehoeren, in einem zweiten
    Dokument stehen.

    Anstatt in einen Iframe koenntest Du die eigentliche Tabelle auch
    in einen DIV packen, diesem die gewuenschte Breite und Hoehe
    geben und mit overflow: ... fuer einen Scrollbalken sorgen.
    http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#overflow

    Gruesse,

    Thomas

    1. Alle CSS-Versuche mit "display: xxx" etc. schlugen bisher fehl.

      Die Breite von Dingen (z.B. von Tabellenzellen) gibt man auch nicht
      mit display: xxx an, sondern mit width: ...

      Das ist mir auch klar. :-) Ich hatte mit "display:..." versucht der Überschriften-Tabelle eine unsichtbare Zeile des Datentable "unterzujubeln", sodass die Zellen somit auf die richtige Breiten skaliert werden. Jedoch geht das nicht, weil a) eine verstecke Zeile keinen Einfluss auf die Breite der restlichen Zeilen/Zellen hat und b) man theoretisch alle Zeilen des Datentable nehmen müsste, da nicht klar ist, in welcher Zeile die jeweilge Zelle ist, die die Gesamtbreite der betroffenen Spalte bestimmt. Alles das gilt natürlich ohne konkrete Breitenangaben für Zellen.

      Alternativ koenntest Du die Breite der Zellen mit veralteten
      HTML-Attributen festlegen.

      Ja schon, aber bei dynamischen Imhalt weiss ich weder welche Breite die einzelnen Spaltenüberschriften haben (ja, diese sind auch dynamisch...), noch welche Spaltenbreiten die Datenzellen haben werden.

      Somit kann ich wohl keine explizite Breitenangaben verwenden, wenn ich micht nicht irre.

      Ein Iframe finde ich hier schlecht - nicht nur, weil der Netscape
      4 dieses Element gar nicht kann, sondern weil die Tabellendaten,
      die doch eigentlich ins Dokument gehoeren, in einem zweiten
      Dokument stehen.

      Absolut korrekt. Mir war die Möglichkeit von "DIV + overflow" nicht bekannt. Allerdings kennt Netscape 4 "overflow" ebenfalls nicht, aber das stört nicht weiter. Die Anwendung ist für aktuelle Browser spezifiziert und wird eine Intranet-Anwendung sein.

      Danke für Dein Hilfe! "DIV + overflow" werde ich wohl auf jeden Fall dem IFRAME vorziehen. Allerdings löst das auch noch nicht mein eigentliches Problem. Aber nun hab ich einen neuen Ansatzpunkt.

      Vielen Dank!

      Gruß,
      Finn