Announcement

Collapse
No announcement yet.

Frage zu "Liste mit dataGridView.DataSource verbinden"

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zu "Liste mit dataGridView.DataSource verbinden"

    Hallo,

    ich versuche mich gerade in 3-Tier in C#.

    ich habe eine Klasse "Kunde" in der - wie sollte es anders sein - ein Kunde gespeichert wird.

    Über die Methode GetAll() fülle ich eine Liste.
    Diese Liste verbinde ich mit der DataSource des dataGridView.

    das funktioniert!

    IKundenManager _km = new KundenManager();

    List<Kunde> _data = _km.GetAll();

    dataGridView1.DataSource = _data;

    Mein Problem ist, dass ich dadurch alle "Felder" der Kunden-Klasse im Grid angezeigt bekomme. Das will ich aber nicht. Ich möchte nur bestimmte Felder im Grid haben. Und die möchte ich am liebsten noch im Designer einrichten können.

    Da ich, wie schon gesagt Newbie bin, wäre es sehr hilfreich für mich wenn Ihr mir sagen könntet wie ich es bewerkstellen kann, dass eben nur bestimmte Spalten angezeigt werden.

    Oder ist es falsch, die List<Kunde> der View zuzuweisen.

    Gruß

    Tajbo

  • #2
    Hallo,
    aus meiner Sicht führt es in die Irre, unter .NET den "Java-Way-of-Live" nachbauen zu wollen. Gerade im .NET Framework 2.0 wurde das DataSet sowie Visual Studio 2005 (Data Source und TableAdapter) so aufgebohrt, dass ein <b>typisiertes DataSet</b> bei dreischichtigen Anwendungen bedenkenlos eingesetzt werden kann. Aus meiner Sicht ist es viel besser, wenn Visual Studio die Hilfsklasse für das Verpacken der Tabelle als Klasse sowie der Tabellenspalten als Eigenschaften generiert, als das der Entwickler das Ganze als Liste nachbaut. Zumal im Fall der DataSet-Data Source-Kombination die visuelle Konfiguration der Datenbankbindung des .NET Framework 2.0 konsequent ausgenutzt werden kann.
    <br>
    P.S: Im <i>dot.net magazin</i> 6.06 ist zu diesem Thema der Artikel "<i>Die Rehabilitierung des Datasets</i>" erschienen

    Comment


    • #3
      Hallo Herr Kosch,

      danke für den Hinweis. Ich habe mir die dot.net gerade bestellt. Mal sehen was der Artikel mir so bringt

      Comment


      • #4
        Hi,

        ich stimme Herrn Kosch zu. Es ist wirklich einfacher geworden. Allerdings kann dein Problem auch bei Datasets auftauchen. ich z.B. hab in nem typisierten Dataset immer zwei Tabellen. Eine für die Anzeige der Liste (damit für Listen nicht soviel Daten über das netzwerk geschickt werden) und eine für Details. Beide können und sollten logischerweise getrennt befüllt werden. Es macht keinen Sinn beid gleichzeitig zu füllen, da dann der Nutzen einer kleineren Listentabelle verloren geht.

        zurück zum Thema: ich habe in der Tabelle immer die ID Spalte mit drin. Natürlich ist es nicht schön, diese in einem GridView mit anzuzeigen. Auch interessiert die meist nicht. Um im Gridview nur bestimmte Spalten anzuzeigen, musst du dem GridView mitteilen welche es sein sollen:

        GridView gridView = new GridView;
        GridViewTextBoxColumn col1 = new GridViewTextBoxColumn()
        col1.HeaderText = "Spaltenüberschrift";
        col1.DataProperty = "Spaltenname in der Tabelle";

        gridView.columns.add(col1);
        gridView.DataSource = ...

        Das machst du für jede Spalte, die du anzeigen willst

        Comment

        Working...
        X