So viele verschiedene Steuerelemente zur Auswahl! Welche Best Practices gibt es, um zu bestimmen, welches Steuerelement zum Anzeigen von Daten in ASP.NET verwendet werden soll?
asp.net
user-interface
Mattruma
quelle
quelle
Antworten:
Es geht wirklich darum, was Sie erreichen wollen
Gridview - Eingeschränkt im Design, funktioniert wie eine HTML-Tabelle. Weitere integrierte Funktionen wie Bearbeiten / Aktualisieren, Seite, Sortieren. Viel Aufwand.
DataGrid - Alte Version von Gridview. Eine Rasteransicht ist ein Super-Datagrid.
Datalist - anpassbarere Version des Gridview. Hat auch etwas Overhead. Mehr manuelle Arbeit, da Sie sie selbst entwerfen müssen.
ListView - der neue Datalist :). Fast eine Mischung aus Datenliste und Gridview, bei der Sie Paging verwenden und Gridview-ähnliche Funktionen einbauen können, aber die Freiheit des Designs haben. Eine der neuen Steuerungen in dieser Familie
Repeater - Sehr leicht. Keine eingebauten Funktionen wie Kopf- und Fußzeilen. Hat den geringsten Overhead.
quelle
Alle anderen haben es geschafft: Es kommt darauf an.
Nun zu einer spezifischen Anleitung (Erweiterung der hervorragenden Antwort von WebDude oben) ...
Passt Ihr Design in eine natürliche Tabellenkalkulation oder Rasteransicht der Daten? GridView .
Müssen Sie eine Liste oder eine andere formatierte Ansicht von Daten anzeigen, möglicherweise mit Kopf- und Fußzeilen und möglicherweise mit spezifischen Steuerelementen und / oder Formatierungen für jeden Datensatz? (ZB angepasste Links, möglicherweise LinkButtons oder bestimmte Bearbeitungssteuerelemente?) Passt diese Anzeige nicht auf natürliche Weise in eine Tabellenkalkulations- oder Rasteransicht? Listenansicht
Wenn Sie alle Kriterien von ListView erfüllen, aber natürlich in ein Raster passen, können Sie DataList in Betracht ziehen .
Ich entscheide mich für Repeater, wenn ich nur einige grundlegende Daten benötige, die mit einigen benutzerdefinierten Designbits iteriert wurden, keine Kopf- und Fußzeilen, schön und sauber.
quelle
Markup-Ansicht
Das Deklarieren des folgenden Beispielcodes ist für alle 3 möglich (ListView, DataList, Repeater).
In den folgenden Listen können Sie die verfügbaren Vorlagen und Optionen für jede von ihnen sehen und die Unterschiede selbst sehen
ListView (beachten Sie die Bearbeitung, Gruppe, Einfügung, Layout)
Datenliste (beachten Sie die Stilpaare )
Verstärker
Codeansicht (erweiterte Ansicht)
CompositeDataBoundControl :
Schauen Sie sich die folgende Klassenhierarchie (und die zugehörigen Steuerelemente) an.
Diese Steuerelemente enthalten andere asp.net-Steuerelemente in ihren Vorlagen, um dem Benutzer gebundene Daten anzuzeigen
Einige Beschreibungen zur besseren Verdeutlichung
Das ListView-Steuerelement
Das ListView-Steuerelement verwendet auch Vorlagen für die Anzeige von Daten. Es werden jedoch viele zusätzliche Vorlagen unterstützt, die mehr Szenarien beim Arbeiten mit Ihren Daten ermöglichen. Diese Vorlagen umfassen LayoutTemplate, GroupTemplate und ItemSeparatorTemplate .
Das ListView-Steuerelement (im Gegensatz zu DataList und Repeater ) unterstützt implizit auch die Möglichkeit, Daten mithilfe eines Datenquellensteuerelements zu bearbeiten, einzufügen und zu löschen. Sie können für jedes dieser Szenarien individuelle Vorlagen definieren.
Das DataList-Steuerelement
Das DataList-Steuerelement funktioniert wie das Repeater- Steuerelement. Es wiederholt Daten für jede Zeile in Ihrem Datensatz und zeigt diese Daten gemäß Ihrer definierten Vorlage an. Die in der Vorlage definierten Daten werden jedoch in verschiedenen HTML-Strukturen dargestellt. Dies umfasst Optionen für das horizontale oder vertikale Layout und ermöglicht es Ihnen auch , festzulegen, wie die Daten wiederholt werden sollen, z. B. als Ablauf- oder Tabellenlayout.
Das DataList-Steuerelement verwendet nicht automatisch ein Datenquellensteuerelement zum Bearbeiten von Daten. Stattdessen werden Befehlsereignisse bereitgestellt, in denen Sie Ihren eigenen Code für diese Szenarien schreiben können. Um diese Ereignisse zu aktivieren, fügen Sie einer der Vorlagen ein Schaltflächensteuerelement hinzu und setzen die CommandName-Eigenschaft der Schaltfläche auf das Schlüsselwort Bearbeiten, Löschen, Aktualisieren oder Abbrechen. Das entsprechende Ereignis wird dann vom DataList-Steuerelement ausgelöst.
Die Repeater-Steuerung
Das Repeater-Steuerelement verwendet auch Vorlagen, um die benutzerdefinierte Bindung zu definieren. Es werden jedoch keine Daten als einzelne Datensätze angezeigt. Stattdessen werden die Datenzeilen wiederholt, wie Sie in Ihrer Vorlage angegeben haben. Auf diese Weise können Sie eine einzelne Datenzeile erstellen und auf Ihrer Seite wiederholen.
Das Repeater-Steuerelement ist eine schreibgeschützte Vorlage. Das heißt, es wird nur die ItemTemplate unterstützt. Das Bearbeiten, Einfügen und Löschen wird nicht implizit unterstützt. Sie sollten eines der anderen Steuerelemente in Betracht ziehen, wenn Sie diese Funktionalität benötigen. Andernfalls müssen Sie dies selbst für das Repeater-Steuerelement codieren .
Die obigen Beschreibungen stammen aus dem Buch MCTS Exam 70-515 Web Applications Development mit Microsoft.NET Framework 4 .
DataGrid wird in diesem Buch nicht einmal erwähnt und durch beliebte GridViews ersetzt und von anderen Benutzern gut beantwortet
quelle
Tatsächlich! Ich habe über die Unterschiede zwischen den ASP.NET 4.0-Datentools gebloggt . Grundsätzlich sind Rasteransichten die leistungsstärkste Methode zur Darstellung tabellarischer Informationen, während ListView-Steuerelemente für die kompliziertere Anzeige wiederholter Daten vorgesehen sind. Wenn ich einem ASP.NET-Neuling Ratschläge geben würde, würde ich ihn bitten, die Rasteransichten von innen nach außen zu lernen und die anderen Steuerelemente zunächst zu ignorieren.
quelle
Alles hängt davon ab, wie Sie Ihre Daten gestalten möchten.
Wenn Sie das Layout steuern müssen (wie Tabellen im Vergleich zu CSS oder was auch immer), verwenden Sie einen Repeater oder ListView. Zwischen den beiden bietet ListView viel mehr Ereignisse und integrierte Befehle zum Bearbeiten, Auswählen und Einfügen. Zusätzliche Paging- und Gruppierungsfunktionen. Ein Repeater ist extrem einfach, er wiederholt ein Layout mit den Daten. Da Sie das Layout von Hand erstellen, benötigen Listview und Repeater mehr Code.
GridView ist ein aktualisiertes DataGrid, daher gibt es kaum einen Grund, DataGrid zu verwenden. GridView funktioniert sehr gut, wenn es mit Standard-ASP.NET-Datenquellen verbunden ist, beschränkt Sie jedoch auf ein tabellarisches Layout mit vielen Layoutregeln. GridView benötigt weniger Code, da Sie ein integriertes Layout verwenden.
quelle