2010-10-25 5 views
0

Je cours une instruction SQL construite dynamiquement et met les résultats dans un datatable. J'ai ensuite besoin d'afficher ces résultats sous forme de tableau dans une vue partielle. Je créerais normalement un objet List <> et le taperais fortement à la page, mais dans ce cas je ne sais pas ce que sera le sql final, puisqu'il est construit par l'utilisateur au moment de l'exécution. Donc, comment puis-je afficher les données dans un datatable quand je ne sais pas ce qu'il y a dedans? Y a-t-il aussi une meilleure façon de faire cela que dans un datatable?Comment afficher une datatable dans asp.net mvc 2?

Merci

Répondre

1

Comme vous affichiez des données tabulaires, vous devez utiliser un tableau HTML pour faire le travail. La réponse du licenciement n'affiche qu'une colonne du tableau. La réponse plus générique se trouve dans la suite SO question:

Displaying standard DataTables in MVC

Le bit qui vous préoccupe est, avec le modèle fortement typé comme DataTable:

<table border="1"> 
    <thead> 
     <tr> 
      <%foreach (System.Data.DataColumn col in Model.Columns) { %> 
       <th><%: col.Caption %></th> 
      <%} %> 
     </tr> 
    </thead> 
    <tbody> 
    <% foreach(System.Data.DataRow row in Model.Rows) { %> 
     <tr> 
      <% foreach (var cell in row.ItemArray) {%> 
       <td><%: cell.ToString() %></td> 
      <%} %> 
     </tr> 
    <%} %>   
    </tbody> 
</table> 

EDIT

Edité pour encoder le contenu du datable. Comme en utilisant mvc 2 (selon l'étiquette), alors Html.Encode pas nécessaire, juste la notation <%: qui est disponible en mvc 2.