tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
3264
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tüv-Killer Tüv-Killer ist offline Rookie
    Registriert seit
    Oct 2003
    Beiträge
    9
    Hallo,

    habe noch eine Frage.
    Kann mir jemand erklären, wie ich beim DataGrid einzelne Spalten ausblende ?
    Defakto, als DataSource liegt eine Abfrage mit 10 Feldern.
    Im meinem DataGrid möchte ich aber nur Spalte 1, 5 und 10 angezeigt bekommen. Ist das möglich und wenn ja wie ?

    Vielen Dank

    André
     

  2. #2
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Wenn Du unbedingt auf ein DataGrid angewiesen bist, könntest Du einfach die Abfrage ändern, um nur die benötigten Felder zurückzubekommen. Ich würde Dir aber empfehlen, ein ListView zu anstelle des DataGrids zu benutzen und es selbst zu füllen - dabei sollte das Ausblenden von einzelnen Spalten kein grosses Problem darstellen. Ausserdem hab ich die Erfahrung gemacht, dass ein ListView besser zu handhaben ist, als ein DataGrid, weil man da mehr Kontrolle über das Steuerelement hat.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  3. #3
    Tüv-Killer Tüv-Killer ist offline Rookie
    Registriert seit
    Oct 2003
    Beiträge
    9
    Danke dir,

    allerdings habe ich keinen Plan, wie ich ein ListView richtig fülle. Mit richtig meine ich , habe eine DataView oder DataTable und wie erstelle ich mir nun ein Listview, welches diese Daten übernimmt, bzw. die gewünschten Spalten erhält ?

    Danke und Gruß

    André

    Ps.: Anpassen der View:--- Beim erzeugen der DataView, habe ich doch nur die Möglichkeit die Tabelle, Rowfilter, Sortierung anzugeben ?! Wie kann ich denn mitgeben, welche Felder ich nur benötige ?

    Per SQL würde ich ja select a,b,c from Table schreiben, aber habe keine Tabelle sondern meine Daten aus einem XML File gezogen.
     

  4. #4
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Wenn Du die Daten direkt aus einer Datenbank auslesen würdest, könntest Du mit einem Recordset-Objekt arbeiten und dieses mit einer Schleife durchlaufen, um die entsprechenden Felder zum ListView-Control hinzuzufügen.
    Mit XML dürfte das etwas ähnlich aussehen, nur dass Du kein komplettes Recordset-Objekt per SQL-Abfrage öffnest. Am besten gehst Du die einzelnen Nodes oder Attribute mit einer Schleife durch und füllst diese Inhalte dann in die entsprechende Spalte.

    Vielleicht ist das nur meine Ansicht, aber ich denke, dass es sinnvoller ist, lieber etwas mehr Code zu schreiben, aber dafür mehr Kontrolle über das eigene Programm zu haben. Logischerweise musst Du dann mit XmlDocument, XmlNode und ähnlichen Dingen arbeiten, aber dafür passiert auch wirklich nur das, was Du willst.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  5. #5
    Tüv-Killer Tüv-Killer ist offline Rookie
    Registriert seit
    Oct 2003
    Beiträge
    9
    Das stimmt mich erstmal traurig , denn das ist wirklich viel Aktion.

    Mein Problem ist, das ich mich gerade an XML ran taste und mich gefreut habe, das ich DataView gefüllt bekomme.

    War in der Hoffnung, das es doch noch eine easiere MEthode gibt.

    Wie gesagt, vorerst würde es mir auch reichen, wenn ich die Spaltenbreite von bestimmten Feldern auf 0 setzen könnte.

    Mein Problmen ist momentan eher zeitlicher Natur.

    Ich danke dir sehr für deine bereits entgegengebrachte Hilfe.

    Falls jemand noch einen Hinweis hat, kann er selbstverständlich diesen mir weiter mitteilen.

    Grüße André
     

  6. #6
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Ob man die Spaltenbreite in einem DataGrid ohne weiteres ändern kann, weiss ich jetzt nicht auswendig. Wenn es keine Eigenschaft dafür gibt, wird es aber vermutlich nicht gehen.
    Aber wie gesagt: Wenn Du sowieso gerade dabei bist, die Handhabung von XML mit .net zu lernen, solltest Du die Daten "von Hand" verarbeiten. So lernst Du schneller und effektiver, wie das ganze aufgebaut ist.

    Ich würd Dir auch gerne ein Beispiel dazu schreiben, aber dazu fehlt mir der Windows.Forms-Namespace...
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  7. #7
    Tüv-Killer Tüv-Killer ist offline Rookie
    Registriert seit
    Oct 2003
    Beiträge
    9
    Vielen Dank schon mal für deine super Hilfe.

    Viele Grüße

    André
     

  8. #8
    Primax Primax ist offline Mitglied Silber
    Registriert seit
    Jun 2003
    Beiträge
    68
    Hallo,
    wenn das ganze Datagrid nicht zur Laufzeit gefüllt wird, dann kannst du die Spalten einzeln mit "Visible" ausblenden oder mit "Lock" sperren (jede Spalte!).

    Das geht aber nur, wenn du die Anbindung zum Datagrid (z.B. an eine Datenbank) über die Eigenschaften des Datagrids gemacht hast! Falls du das ganze per Code machst, (das versuche ich im Moment) dann geht es nicht! [zu mindest habe ich es bis jetzt noch nicht hin bekommen]

    Grüße

    Primax
     

Ähnliche Themen

  1. Nur bestimmte Spalten im Silverlight-Datagrid anzeigen
    Von orion555 im Forum .NET WPF & Silverlight
    Antworten: 1
    Letzter Beitrag: 05.09.10, 22:52
  2. DataGrid-Spalten automatisch anpassen
    Von broetchen im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 09.09.05, 12:30
  3. Spalten im DataGrid anpassen
    Von speedy78 im Forum Delphi, Kylix, Pascal
    Antworten: 2
    Letzter Beitrag: 13.04.05, 11:17
  4. Antworten: 1
    Letzter Beitrag: 07.06.04, 15:57
  5. Spalten verstecken im DataGrid
    Von LordDeath im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 21.04.04, 14:26