2009-11-20 4 views
0

Quelle est la meilleure méthode pour afficher des données répétées avec des contrôles ou sous-données légèrement différents? Par exemple afficher une liste élargie de questions et réponses. Certaines questions auront des réponses, d'autres non. Certains contrôles de bouton montreraient pour certains articles, mais pas pour d'autres.Rendu de différentes données répétées

En ASP classique, j'ai utilisé assez efficacement XML/XSL pour afficher des données de cette manière. Dans .NET, j'ai utilisé des fonctions appelées à partir d'une étiquette avec la classe d'auteur HTML pour rendre les contrôles dynamiquement et les vues de liste imbriquées qui se lieraient ou non en fonction des données existantes. Je sais que je pourrais aussi utiliser XSL avec .NET mais ma question est - y a-t-il une meilleure méthode d'affichage des données de cette façon? Inline IIf et les fonctions étant appelé de l'avant ne semble pas très propre.

+0

Vos suggestions sont bonnes, mais j'utilise déjà une vue de liste avec un modèle d'élément. Ma question est s'il y a une meilleure méthode pour rendre les contrôles dynamiques dans le modèle d'élément conditionnellement, sans avoir à appeler une fonction pour rendre HTML. –

Répondre

1

Je pense que le ListView travaillerait dans votre situation:

http://blogs.msdn.com/mikeormond/archive/2008/01/23/some-asp-net-3-5-listview-control-examples.aspx

http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui.aspx

Vous avez la possibilité de regrouper des éléments dans différentes mises en page en utilisant les ItemTemplates et vous pouvez également puiser dans les gestionnaires d'événements lors du chargement des données.

EDIT:

Vous pourriez être en mesure de le faire de cette façon dynamique, mais il est difficile avec l'ID de: http://blogs.msdn.com/mikeormond/archive/2008/07/26/dynamically-loading-listview-templates.aspx

Ou vous pouvez simplement créer un contrôle composite de table et construire dynamiquement vous-même ...

Questions connexes