Zeile in Datagrid ausblenden / Sortierung über Überschrift

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Zeile in Datagrid ausblenden / Sortierung über Überschrift

    Hallo,

    ich blende in einem Datagridview Zeilen endweder mit .visible=false oder auch mit row(x).height = 0 aus.
    Sobald ich aber über die Kopfzeile eine andere Sortierung mache, sind die Zeilen wieder sichtbar.
    Kann man das irgendwie verhindern?
    Ja, es ist gebunden.
    Ich erklär mal:
    Das Grid zeigt eine Liste an Artikeln an, die kommisioniert werden sollen. Es gibt dort ein Feld, in dem die Kommisionierte Menge als Zahl über einen Button gebucht wird. (Gebucht).
    Ich erzeuge das im SQL über zwei Hochkommas und einem Aliasnamen, also z.b so: Select *, '' as gebucht from Tabelle
    d.h. in der eigentlichen Tabelle in der DB gibt es diese Feld gar nicht.
    Die Buttons daneben öffnen einen Maske, wo der Lagerplatz und die entnommene Menge ausgewählt wird (ein Artikel kann ja verschiedene Lagerplätze haben)
    Die Menge wird dann in das Feld "gebucht" übernommen. Wenn ein Artikel bei Menge und bei gebucht den gleichen Wert hat, blende ich die Zeile mit .visible=false aus.
    Nur leider muß ich bei langen Listen auch mal anders sortieren und dann sind die ganzen Ausblendungen wieder offen. Kann man zwar auch über eine Funktion machen, aber ich blende auch manchmal Zeile aus, in der nichts zu buchen ist und damit eine 0 bei gebucht steht. Demnach meines Erachtens dann auch nicht über einen Filter zu lösen, oder?
    Ich hoffe, du kannst meine Beschreibung nachvollziehen

    Dann habe ich das mit BindingSource missverstanden. Nein. Habe keine Steuerelement auf dem Form

    VB.NET-Quellcode

    1. Dim sql As String
    2. Dim conn As New MySqlConnection ' Für die Verbindung zur Datenbank
    3. Dim cmd As New MySqlCommand
    4. Dim ds As New DataSet ' DataSet faßt eine oder mehrere DataTable zu einem Set (Gruppe) zusammen
    5. Dim da As MySqlDataAdapter
    6. da = New MySqlDataAdapter(sql, conn)
    7. da.Fill(ds)
    8. DataGridView1.DataSource = ds.Tables(0)
    Nein - du hast keine Bindingsource zwischen DGV und Daten geschaltet...
    Angelehnt an dein obiges Code-Listing:

    VB.NET-Quellcode

    1. Dim bs As New Bindingsource
    2. bs.DataSource = ds.Tables(0)
    3. DatagridView1.Datasource = bs

    Und dann schaue, was dir die Bindingsource alles anbietet...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()