Hallo Zusammen, wie o.g. möchte gern einen ListContainer an ein GridView binden.
------MODEL---------
public class AdresseObj
{
public int ID { get; set; }
public String Name { get; set; }
public String Vorname { get; set; }
public String Ort { get; set; }
}
public class AdresseObjRepo
{
List<AdresseObj> AdList = new List<AdresseObj>();
public void SetTestData()
{
AdresseObj obj = new AdresseObj();
obj.ID = 1;
obj.Name = "Hans";
obj.Vorname = "Wurst";
obj.Ort = "M";
AdList.Add(obj);
obj = new AdresseObj();
obj.ID = 2;
obj.Name = "Peter";
obj.Vorname = "Lug";
obj.Ort = "MZ";
AdList.Add(obj);
obj = new AdresseObj();
obj.ID = 3;
obj.Name = "Werner";
obj.Vorname = "Mueller";
obj.Ort = "WOB";
AdList.Add(obj);
obj = new AdresseObj();
obj.ID = 4;
obj.Name = "Lukas";
obj.Vorname = "Poldi";
obj.Ort = "K";
AdList.Add(obj);
obj = new AdresseObj();
obj.ID = 5;
obj.Name = "Andy";
obj.Vorname = "Jeder";
obj.Ort = "HH";
AdList.Add(obj);
}
public List<AdresseObj> getAllAdresse()
{
return this.AdList;
}
}
------Controller---------
public class DataGridTestController : Controller
{
//
// GET: /DataGridTest/
AdresseObjRepo RepoObj = new AdresseObjRepo();
public ActionResult Index4()
{
RepoObj.SetTestData();
var AdressTable = RepoObj.getAllAdresse();
return View(AdressTable);
}
}
--VIEW----
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index4
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<form id="form1" runat="server">
<h2>Gridview (Objekt)</h2>
<p>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Vorname" HeaderText="Vorname"
SortExpression="Vorname" />
<asp:BoundField DataField="Ort" HeaderText="Ort" SortExpression="Ort" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="getAllAdresse" TypeName="Test.Models.AdresseObjRepo">
</asp:ObjectDataSource>
</p>
</form>
</asp:Content>
Also durch ObjectDataSource wurden schon die Spalten automatisch gezogen, zumindest im Entwurf. Aber es werden keine Daten angezeigt ich vermute das die Referenz irgendwie fehlt. Was mache ich falsch? Danke
Hi,
du mischt da zwei Dinge die so nicht zusammen passen: WebForms und MVC
Das GridView Control das du verwendest, funktioniert daher nicht ohne weiteres in einer MVC-Anwendung. Siehe auch: http://stackoverflow.com/questions/2803525/asp-net-gridview-mvc
Es gibt diverse andere Grid-Controls für MVC: http://stackoverflow.com/questions/177275/grid-controls-for-asp-net-mvc
Das ist schade das es nicht mit den Standardkomponenten funktioniert..mm
Weil mit einer LINQ ressource funktioniert es einwandfrei
Wenn Du ein Grid in MVC brauchen willst, musst Du mit MVC 3 arbeiten. Dort haben sie die neue Razor-Engine (glaub ich sie heisst so) implementiert, dass per Templating ein Grid herstellt. Hier ein Einstiegspunkt.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Heist das man darf in MVC, solche Sachen wie void Page_Load(Object Src, EventArgs E) nicht verwenden obwohl sie funktionieren. Oder so sachen wie <asp:label...></asp:Label>?
Wo dran sehe ich welche Elemente legitim sind, weil die Entwicklungsumgebung mir alle möglichen Sachen zur Verfügung stellt.
CodeBehinds in MVC sind sehr "böse" - zwar Möglich aber Du solltest wenn möglich KEIN CodeBehind nutzen!
Genauso rate ich Dir von der Nutzung von <asp:>-Controls wirklich ab; stattdessen auf das eigentliche MVC und jQuery setzen.
Wenn Du sowas wie Page_Load() etc nutzen willst, bist Du mit MVC nicht richtig bedient.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Wenn Du sowas wie Page_Load() etc nutzen willst, bist Du mit MVC nicht richtig bedient.
Würde ich jetzt auch meinen. Du hast immer nur den Controller /View /Model zur Verfügung und machst alle Logik im Controller und die "Controls" werden mithilfe des InlineCode in der ASPX mit dem HtmlHelper generiert /erstellt.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Meine Aufgabe ist es eine Rechteverwaltung mit Quelle LDAP zu entwickeln. Hoffe mal das MVC das korrekte ist.