2010-05-07 40 views
17

Was sind die Unterschiede zwischen der ASP.Net-Steuerelement <asp:Table> im Vergleich zu der alten zuverlässigen Tabelle HTML-Implementierung?<asp:Table> Vs html <table>

Ich weiß, dass die <asp:Table> auf der zurückgegebenen Seite als HTML-Tabelle endet, aber kommt die ASP.Net-Steuerelement mit irgendwelchen Vorteile, die ich vermisse?

+1

Ich habe noch nie eine ASP: Tabelle verwendet und bin seit Version 1.0 ein .Net-Entwickler. Ich habe nie einen Nutzen dafür gefunden. – David

Antwort

11

Ein "regulärer" <table> ist auf der Serverseite nicht für die Änderung an allen verfügbar. Soweit es die Serverseite betrifft, wird nur statischer Text an den Browser ausgegeben.

Ich würde sagen, dass als allgemeine Regel, <table> begünstigen, es sei denn, Sie müssen explizit die Struktur der Tabelle auf dem Server ändern. Wenn Sie <asp:Table> verwenden, haben Sie den Overhead, den Code-Behind für die Tabelle auszuführen, das serverseitige Steuerelement zu generieren und so weiter. Wenn Sie keine dieser Funktionen verwenden, hat das keinen Sinn.

Im Allgemeinen ist <asp:DataTable> in der Regel nützlicher als nur einfach <asp:Table>, da es Datenbindung und so weiter unterstützt.

Normalerweise, wenn ich will nur ein-/auszublenden eine einzelne Zeile in einer Tabelle (oder etwas), dann nur runat="server" auf dem einzelnen <tr> habe ich werde, die ich kontrollieren wollen, anstatt eine ganze <asp:Table> verwenden.

+2

Die Erwähnung von runat = "server" im allerletzten Satz macht diesen Kommentar wenig hilfreich. Es sollte im ersten Satz enthalten sein, aber dann würden Sie grundsätzlich sagen: '

' ist nicht Server-Seite von '', oh und so ist ' ". In diesem Fall wird die Diskussion, ob System.Web.UI.WebControls.Table vs. System.Web.UI.HtmlControls.HtmlTable verwendet werden soll, was meiner Meinung nach eine nützlichere Diskussion ist. – devlord

3

Beachten Sie, dass es Fälle gibt, in denen ASP HtmlTables nicht standardkonformes HTML ausgeben kann. Zum Beispiel, sie do not support complete table semantics (thead/tfoot/tbody, cols, Bildunterschrift ...); Sie werden eine Ausnahme auslösen, wenn Sie versuchen, diese Elemente programmgesteuert einzubeziehen.

Dies sind schwerwiegende Einschränkungen für zugängliche Inhalte.