Tant de contrôles différents à choisir! Quelles sont les meilleures pratiques pour déterminer quel contrôle utiliser pour afficher les données dans ASP.NET?
Réponses
Trop de publicités?C'est vraiment à propos de ce que vous essayez d'atteindre
Gridview Limitée dans la conception, fonctionne comme un tableau html. De plus dans la construction de fonctionnalités comme l'édition/mise à jour de la page, trier. Beaucoup de frais généraux.
DataGrid - Ancienne version de la Gridview. Un gridview est une super grille de données.
Datalist - plus personnalisable version de la Gridview. A également des frais généraux. Plus de travail manuel que vous avez à les concevoir vous-même.
ListView - la nouvelle Datalist :). Près d'un hybride de la datalist et gridview où vous pouvez utiliser la pagination et de construire en Gridview comme fonctionnalité, mais ont la liberté de conception. L'un des nouveaux contrôles dans cette famille
Répéteur - Très léger. Pas construit dans la fonctionnalité de comme les en-Têtes, Pieds de page. A le moins de frais généraux.
Tout le monde a frappé: Il Dépend.
Maintenant, pour certains d'orientation spécifique (en s'appuyant sur WebDude excellente réponse ci-dessus) ...
Est-ce que votre conception ajustement naturel de feuille de calcul ou une grille de données? GridView.
Avez-vous besoin pour afficher une liste ou d'une autre vue formatée de données, éventuellement avec des en-têtes et pieds de page, et probablement avec des contrôles spécifiques et/ou de mise en forme pour chaque enregistrement de données? (Par exemple, des liens personnalisés, éventuellement LinkButtons, ou de certains contrôles d'édition?) Est-ce à afficher précisément pas inscrivent naturellement dans une feuille de calcul ou une grille? ListView
Si vous répondez à tous les critères de la Liste, mais vous serait naturellement s'intégrer dans une grille, vous pouvez envisager de DataList.
- Je aller pour Répéteur quand j'ai juste besoin de quelques données de base itéré avec une certaine conception personnalisée bits, aucun en-tête, pas de pieds, agréable et propre.
En mode Code (affichage avancé)
Le CompositeDataBoundControl classes de la hiérarchie (et de contrôle). ces contrôles héberge d'autres asp.net les contrôles dans leurs modèles d'affichage lié-les données à l'utilisateur
Balisage Vue
Déclarant l'exemple de code suivant est possible pour tous les 3( ListView, DataList , Répéteur)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate>
<span style="background-color: navy; border: 1px solid black; color: white; padding: 5px; margin-right: 16px;"><%# Eval("Name")%>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete" CommandArgument='<%# Eval("GuideServiceId") %>' Text='Delete' ForeColor="Red" />
</span>
</ItemTemplate>
<asp:ListView>
dans les listes ci-dessous Vous pouvez voir les modèles disponibles et les options pour chacun d'entre eux et de voir les différences pour vous-même
ListView (note de l'édition,de groupe,d'insertion ,de mise en page)
- AlternatingltemTemplate
- EditltemTemplate
- EmptyDataTemplate
- EmptyltemTemplate
- GroupSeparatorTemplate
- GroupTemplate
- lnsertltemTemplate
- ItemSeparatorTemplate
- ItemTemplate
- LayoutTemplate
- SelectedltemTemplate
DataList (notez le Style de paires)
- AlternatingltemStyle
- AlternatingltemTemplate
- EditltemStyle
- EditltemTemplate
- FooterStyle
- FooterTemplate
- HeaderStyle
- HeaderTemplate
- ItemStyle
- ItemTemplate
- SelectedltemStyle
- SelectedltemTemplate
- SeparatorStyle
- SeparatorTemplate
Répéteur
- AlternatingltemTemplate
- FooterTemplate
- HeaderTemplate
- ItemTemplate
- SeparatorTemplate
Certaines descriptions pour mieux précisions
Le Contrôle ListView
Le contrôle ListView utilise également des modèles pour l'affichage des données. Cependant, il prend en charge de nombreux d'autres modèles, qui permettent le plus de scénarios lorsque vous travaillez avec vos données. Ces modèles comprennent les LayoutTemplate,GroupTemplate,ItemSeparatorTemplate.
Le contrôle ListView (contrairement à DataList et Répéteur) aussi implicitement prend en charge la capacité de modifier, insérer et supprimer des données à l'aide d'un contrôle de source de données. Vous pouvez définir des modèles individuels pour chacun de ces scénarios.
Le Contrôle DataList
Le contrôle DataList fonctionne comme la Répétition de contrôle. Il répète des données pour chaque ligne de votre ensemble de données, et il affiche ces données en fonction de votre modèle défini. Toutefois, il précise les données définies dans le modèle au sein de diverses structures HTML. Ceci inclut des options pour l'horizontale ou à la verticale mise en page, et il vous permet également de définir comment les données doivent être répétées, sous forme de flux ou de la disposition de table.
Le contrôle DataList ne pas utiliser automatiquement un contrôle de source de données pour modifier les données. Au lieu de cela, il fournit des événements de commandes dans lequel vous pouvez écrire votre propre code pour ces scénarios. Pour permettre à ces événements, vous ajoutez un Bouton de contrôle pour l'un des modèles et placer le bouton La propriété CommandName pour le modifier, supprimer, mettre à jour ou annuler mot-clé. Approprié l'événement est ensuite soulevé par le contrôle DataList.
Le Contrôle Repeater
Le contrôle Repeater utilise également des modèles pour définir liaison personnalisée. Cependant, il n'a pas d'afficher les données des enregistrements individuels. Au lieu de cela, il reprend les lignes de données que vous spécifiez dans votre modèle. Cette vous permet de créer une seule ligne de données et de les faire répéter sur votre page.
Le contrôle Repeater est une lecture seul modèle. C'est, il prend en charge uniquement l'ItemTemplate. Il n'est pas implicitement en charge de l'édition, de l'insertion et de suppression. Vous devriez envisager de l'un des d'autres contrôles si vous avez besoin de cette fonctionnalité, sinon vous aurez ce code vous-mêmepour le contrôle Repeater.
Les Descriptions qui précèdent sont d' Examen MCTS 70-515 Web Développement d'Applications avec Microsoft.NET Cadre 4 livre.
DataGrid n'est même pas mentionné dans ce livre, et est remplacé par populaire GridViews et répondu gentiment par d'autres utilisateurs
Effectivement! J'ai blogué sur les différences entre les outils de données ASP.NET 4.0 . Fondamentalement, les vues de grille sont le moyen le plus puissant de présenter des informations tabulaires, tandis que les commandes ListView sont destinées à des affichages plus compliqués de données répétées. Si je donnais des conseils à un débutant ASP.NET, je leur dirais d’apprendre les vues de grille et d’ignorer d’abord les autres contrôles.
Tout se résume à la façon dont vous voulez mise en page de vos données.
Si vous avez besoin de contrôler la mise en page (comme les tables contre le CSS contre quoi que ce soit), lors de l'utilisation d'un Répéteur ou ListView. Entre les deux, ListView vous donne beaucoup plus d'événements et des commandes intégrées pour la modification, la sélection, de l'insertion. En outre, la pagination et les fonctionnalités de regroupement. Un Répéteur est extrêmement simple, il répète une mise en page avec les données. Puisque vous êtes en train de construire la mise en page à la main, Listview et Répéteur besoin de plus de code.
GridView est une mise à jour de grille de données, donc il n'y a guère de raison de l'utilisation de grille de données. GridView fonctionne vraiment très bien lors de l'accro à la norme ASP.NET les sources de données, mais vous limite à une présentation tabulaire avec beaucoup de règles de présentation. GridView nécessite moins de code puisque vous êtes à l'aide d'un modèle.