none
ASP MVC 4: Daten der DataTable im ListView (ASPX) anzeigen RRS feed

  • Frage

  • Hallo,
    ich setze MVC 4 ein und suche eine Lösung, um die Daten von der DataTable in einer ListView im ASPX nur lesend anzuzeigen.
    Offensichtlich liegt der Fehler in der Zuweisung von DataSourceID.
    Was fehlt für DataSourceID noch in ASPX; also ohne C#?

    Alexander

     

    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: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>
    </asp:Content>

    Mittwoch, 18. Dezember 2013 08:11

Antworten

  • Hallo Alexander,

    tja, wenn man sich schon MVC ans Bein binden will, dann mit allen Konsequenzen. Du kannst (bzw. konntest bisher) nicht einfach MVC, WebForms und sonstiges miteinander vermischen.

    Den Begriff "DataSourceId" solltest Du aber so oder so ersatzlos streichen. Damit macht man in keiner Technologie irgendwas sinnvolles.

    Zu deinem Problem: <asp:GridView, ... kannst Du nicht verwenden, auch nicht SqlDataSource und Co. Daher musst Du dir deine ListView bzw. den HTML Code dazu selbst aufbauen:

      http://forums.asp.net/t/1893892.aspx


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 18. Dezember 2013 09:04
    Moderator

Alle Antworten