Sortierung von Daten mit untergeordneten Datensätzen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von tragl.

    Sortierung von Daten mit untergeordneten Datensätzen

    Hallo zusammen.
    Ich muss an einer Stelle ein DataGridView manuell befüllen. Das klappt auch wunderbar, nur komme ich mit der Sortierung nicht weiter.
    Zeile 13 will ich eigentlich weglassen und über Zeile 10 direkt vorsortieren:
    Und zwar erst nach rwPlaner.MitarbeiterRow.StandortRow.Name, danach nach rwPlaner.MitarbeiterRow.expFullname

    Hänge ich an Zeile 10 hinten ein .OrderBy(Function(y)y.MitarbeiterRow... dran, komme ich aber nicht an die untergeordneten (.StandortRow und .expFullname)
    Lässt sich das irgendwie in der Zeile lösen oder ist das so nicht gewollt?

    VB.NET-Quellcode

    1. Private Sub FillDgvAbwesenheit()
    2. cursWait()
    3. With dgvAbwesenheit
    4. .Columns.Clear()
    5. .Columns.Add("Mitarbeiter", "Mitarbeiter")
    6. .Columns.Add("Standort", "Standort")
    7. .Columns.Add("Status", "Status")
    8. .Columns.Add("Abweichung", "Abweichung")
    9. End With
    10. For Each rwPlaner In Dts.Planer.Where(Function(x) x.Datum = Date.Today AndAlso x.expAnzeigeAbwesend)
    11. dgvAbwesenheit.Rows.Add(rwPlaner.MitarbeiterRow.expFullname, rwPlaner.MitarbeiterRow.StandortRow.Name, rwPlaner.PlanerStatusRow.Bedeutung, rwPlaner.PlanerStatusRowByFK_PlanerStatus_Planer1.Bedeutung)
    12. Next
    13. dgvAbwesenheit.Sort(dgvAbwesenheit.Columns("Standort"), ListSortDirection.Ascending) 'TODO: Sortierung nach 2 Col's: Erst Standort, dann Mitarbeiter
    14. dgvAbwesenheit.SetDgvColumnWidthAutosizeOnce
    15. cursDefault()
    16. End Sub


    Edit:
    Hat sich erledigt, wollte nen Ausschnitt machen, wie ich mir das vorstelle und auf einmal ging's. IntelliSense hatte an der Stelle einfach keine Lust :huh:
    So geht's nu:
    For Each rwPlaner In Dts.Planer.Where(Function(x) x.Datum = Date.Today AndAlso x.expAnzeigeAbwesend).OrderBy(Function(y) y.MitarbeiterRow.StandortRow.Name).ThenBy(Function(z) z.MitarbeiterRow.expFullname)
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Jo, auch nicht schlecht. Da ich aber nirgends damit arbeite fällt mir das Lesen meiner Variante deutlich einfacher ;)
    Muss man halt erstmal drauf kommen, dass IntelliSense da anfängt zu streiken
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup: