Comment Présenter un DataTable dans une MVC3 Rasoir vue
J'ai un fiable et testé la méthode d'importation entre une .xls feuille de calcul[1] qui retourne un DataTable
. J'ai trouve cela dans ma couche de service, et non pas des données que seul le classeur obtient persisté un fichier téléchargé, mais maintenant, je me demande où et comment produire une représentation HTML de ce DataTable
. Je préfère éviter les deux boucles de mon point de vue. J'ai un nombre variable de colonnes dans la DataTable
.
[1] à l'Aide d'une interface OleDb. Je sais que c'est archaïque, mais il fonctionne.
quel est le problème avec l'aide de deux boucles? Comment sur l'utilisation de
Mon problème est d'avoir trop de Rasoir/C# dans la vue; je suis un perfectionniste 🙂 Merci pour l'astuce sur webGrid, je suis l'aide de Telerik, mais un nombre variable de colonnes est une grande préoccupation pour moi.
WebGrid
helper - cependant vous avez besoin de générer une collection de colonnes dans une méthode basée sur la saisie DataTable et de l'approvisionnement de webgrid.Mon problème est d'avoir trop de Rasoir/C# dans la vue; je suis un perfectionniste 🙂 Merci pour l'astuce sur webGrid, je suis l'aide de Telerik, mais un nombre variable de colonnes est une grande préoccupation pour moi.
OriginalL'auteur ProfK | 2011-07-04
Vous devez vous connecter pour publier un commentaire.
Les tables de données sont faiblement typé. Je déteste la faiblesse de frappe.
Voici une autre approche: l'utilisation de modèles de vue, fortement typé points de vue et des modèles d'affichage. Donc, commencer par la définition d'un modèle de vue qui représentent les informations que vous êtes prêt à afficher:
vous pourriez avoir de l'action d'un contrôleur qui remplit ce modèle de vue. Si vous avez déjà quelques couches de service qui crache tables de données, vous pouvez mapper les tables pour le fameux modèle de vue. Pour les fins de cette démonstration, nous allons coder en dur:
et la dernière partie est le point de vue (
~/Views/Home/Index.cshtml
):et nos modèles d'affichage:
~/Views/Home/DisplayTemplates/ColumnViewModel.cshtml
:~/Views/Home/DisplayTemplates/RowViewModel.cshtml
:~/Views/Home/DisplayTemplates/CellValueViewModel.cshtml
:Et c'est à peu près tout. Comme vous pouvez le voir, nous avons écrit exactement zéro boucles dans nos vues et nous avons fini avec une belle
<table>
la structure représentant une Feuille de calcul Excel.Comment créer un MyViewModel instance à partir d'une DataTable directement?
vous pourriez en boucle les enregistrements de votre DataTable et la carte à votre modèle de vue.
nous faisons juste notre projet de boucle à travers les lignes dans la table de données et de transfert dans le modèle. Cela fonctionne, le seul problème est qu'il est très lent. Et l'idée de la façon de faire avancer les choses plus vite?
OriginalL'auteur Darin Dimitrov