2009-06-08 3 views
0

Ich versuche, eine einfache gebänderte Rasteransicht in XHTML Strict mit CSS zu erstellen. Für ein Beispiel siehe this picture of a devExpress GridView. Das Hauptproblem besteht darin, eine Tabelle zu erstellen, in der jeder Eintrag aus mehreren Zeilen besteht. Natürlich, so etwas wieGebänderte Rasteransicht in XHTML Strict + CSS

<table> 
<tr><td> 
    <table> 
    <tr> 
    <td width=100>Item 1, cell 1</td> 
    <td width=200>Item 1, cell 2</td> 
    </tr><tr> 
    <td width=300>Item 1, cell 3</td> 
    </tr><tr> 
    <td width=150>Item 1, cell 4</td> 
    <td width=150>Item 1, cell 5</td> 
</td></tr> 
<tr><td> 
    <table> 
    <tr> 
    <td width=100>Item 2, cell 1</td> 
    <td width=200>Item 2, cell 2</td> 
    </tr><tr> 
    <td width=300>Item 2, cell 3</td> 
    </tr><tr> 
    <td width=150>Item 2, cell 4</td> 
    <td width=150>Item 2, cell 5</td> 
</td></tr> 
</table> 

Allerdings "riecht". Das Gleiche gilt für die Verwendung von vielen Colspans. Gibt es noch andere Möglichkeiten?

+0

natürlich können Sie dieses Datenraster auf divs bauen, aber warum denken Sie, ‚das riecht‘? Es ist normal, komplexe Tabelleninhalte darzustellen. P.S. width = "300" colspan = "2"? –

+0

Ich muss sagen, das ist eine * schreckliche * UI, aber ästhetische Urteile abgesehen würde ich mit einer ul Unterstruktur gehen, denke ich. HTML hat einfach keine gute Unterstützung für so etwas, aber das sagt mehr über die Struktur als HTML, denke ich. – annakata

Antwort

0

Sie könnten auch Nest Tabellen:

<table> 
<tr><td><!----- row 1 --> 
    little icon 
</td><td> 
    <table> 
     <tr><td>Band 1</td><td>some data</td></tr> 
     <tr><td>Band 2</td><td>some other data</td></tr> 
    </table> 
</td></tr> 
<tr><td><!----- row 2 --> 
... 
</td></tr> 
</table> 
+0

Danke. Das ist eine Option, an die ich gedacht habe, aber da die Bands unterschiedliche Strukturen haben, habe ich gehofft, dass es einen schöneren Weg geben würde. – Martijn

0

Sie könnten wahrscheinlich Ihre eigene Art der Ausgabe der Tabelle schreiben (entweder als Methode im Codebehind oder als benutzerdefinierter Controller), mit einem DataTable-Objekt oder ähnlichem als Eingabe. Glauben Sie nicht, dass der Standard-Gridview-Controller in der Lage ist, das zu tun, was Sie wollen.