Benutzer mit den meisten Antworten
ASP MVC 4 Daten im ListView anzeigen

Frage
-
Hallo,
ich will mit dem ASP MVC 4 Daten im ListView anzeigen. Der User kann diese nicht ändern.Homecontroller.cs:
public ActionResult Projects() { DataTable dataTable = null; if (ModelState.IsValid) { var connectionString = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString; using (var connection = new SqlConnection(connectionString)) { string query = "SELECT * FROM [Projects]"; var command = new SqlCommand(query, connection); try { connection.Open(); var dataAdapter = new SqlDataAdapter(command); var dataSet = new DataSet(); dataAdapter.Fill(dataSet); } catch (Exception exception) { // } } } return View(dataTable); }
Projects.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <asp:Content ID="Content_3" ContentPlaceHolderID="MainContent" runat="server"> ... </asp:Content>
1. Ist es richtig bzw. üblich, dass von ActionResult eine DataTable mit acht Spalten an die View übergeben wird?
2. Wie kann ich mit einer foreach-Schleife die DataTable durchlaufen (z.B. Spalte Beschreibung) und die Werte anzeigen; einfach zur Kontrolle?
3. Wie kann ich die Daten der DataTable in einem ListView anzeigen (z.B. Spalte Beschreibung, Titel) mit MVC 4?Alexander
- Bearbeitet Ciprian Bogdan Dienstag, 17. Dezember 2013 17:16 Codeblock
Antworten
-
Hallo,
zum zweiten Punkt habe ich eine Lösung:<table > <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>
Damit kann ich zum Testen mir alle Daten der DataTable anzeigen lassen.
Nun fehlt mir noch eine Lösung, um die Daten von der DataTable in einer ListView anzuzeigen.
Hier liegt offensichtlich der Fehler in der Angabe von DataSourceID.
Was fehlt für DataSourceID noch in ASPX; also ohne C#?Alexander
<asp:ListView ID="ListView1" runat="server" DataSourceID="Model"> <LayoutTemplate> <table style="width: 100%; text-align: left;"> <tr> <td style="width: 20%; text-align: center;">Beschreibung</td> <td style="width: 20%; text-align: center;">Titel</td> </tr> <tr runat="server" id="itemPlaceHolder"></tr> </table> </LayoutTemplate> <ItemTemplate> <tr id="itemPlaceHolder"> <td style="width: 20%; text-align: center;"><%#Eval("Beschreibung")%></td> <td style="width: 20%; text-align: center;"><%#Eval("Titel")%></td> </tr> </ItemTemplate> </asp:ListView>
- Bearbeitet Ciprian Bogdan Dienstag, 17. Dezember 2013 17:20 Codeblock
- Als Antwort markiert Ciprian Bogdan Dienstag, 17. Dezember 2013 17:22
-
Hi Alexander,
Um die Übersicht der Foren einzubehalten, poste bitte jede Frage auf separaten Threads.
Danke und Gruß,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Als Antwort markiert Ciprian Bogdan Dienstag, 17. Dezember 2013 17:22
Alle Antworten
-
Hallo,
zum zweiten Punkt habe ich eine Lösung:<table > <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>
Damit kann ich zum Testen mir alle Daten der DataTable anzeigen lassen.
Nun fehlt mir noch eine Lösung, um die Daten von der DataTable in einer ListView anzuzeigen.
Hier liegt offensichtlich der Fehler in der Angabe von DataSourceID.
Was fehlt für DataSourceID noch in ASPX; also ohne C#?Alexander
<asp:ListView ID="ListView1" runat="server" DataSourceID="Model"> <LayoutTemplate> <table style="width: 100%; text-align: left;"> <tr> <td style="width: 20%; text-align: center;">Beschreibung</td> <td style="width: 20%; text-align: center;">Titel</td> </tr> <tr runat="server" id="itemPlaceHolder"></tr> </table> </LayoutTemplate> <ItemTemplate> <tr id="itemPlaceHolder"> <td style="width: 20%; text-align: center;"><%#Eval("Beschreibung")%></td> <td style="width: 20%; text-align: center;"><%#Eval("Titel")%></td> </tr> </ItemTemplate> </asp:ListView>
- Bearbeitet Ciprian Bogdan Dienstag, 17. Dezember 2013 17:20 Codeblock
- Als Antwort markiert Ciprian Bogdan Dienstag, 17. Dezember 2013 17:22
-
Es freut uns, dass Du Dein Problem lösen konntest und danke, dass Du Deine Lösung hier im Forum gepostet hast. Jetzt können auch andere die das gleiche Problem haben unter Umständen davon profitieren.
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hi Alexander,
Um die Übersicht der Foren einzubehalten, poste bitte jede Frage auf separaten Threads.
Danke und Gruß,
Ciprian
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Als Antwort markiert Ciprian Bogdan Dienstag, 17. Dezember 2013 17:22