Laden...

Mehrere Comboboxen in Abhängigkeit zueinander (in beide Richtungen)?

Erstellt von werdy vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.016 Views
W
werdy Themenstarter:in
2 Beiträge seit 2012
vor 11 Jahren
Mehrere Comboboxen in Abhängigkeit zueinander (in beide Richtungen)?

Hallo zusammen
Bin gerade seit einiger Zeit an einem Problem und finde selber sowie im Internet keine geeignete Lösung sodass ich mich an Euch hier wende.

Ich habe 4 Tabellen welche miteinander jeweils über eine PK/FK ID verbunden sind (jeweils eine 1-n Verbindung):

Tabelle 1 = Domäne
Tabelle 2 = Abteilung
Tabelle 3 = Team
Tabelle 4 = Mitarbeiter

Jetzt wollte ich 4 Comboboxen machen und diese via Databinding anschliessen. Soweit so gut. Das ist ja nicht das Problem. Die DS (Datasets sind erstellt) den Rest kann ich im Visual Studio zuweisen.

Mein Problem fängt aber jetzt erst richtig an.

  1. Der Kunde sollte auf dem GUI die Möglichkeit haben dass er ein Mitarbeiter wählt und dann sollten die oberen Comboboxen vom System befüllt werden.

  2. Wenn der Kunde die Combobox Abteilung wählt sollten die Domäne selektiert werden und im Team natürlich nur noch die möglichen Werte angezeigt werden ebenfalls für die Mitarbeiter.

Gibt es allenfalls irgendwo ein Beispiel mit einer ähnlichen Ausgangslage wo ich mir dies als Beispiel anschauen und daran etwas lernen kann?

Wäre toll hier eine kleine Hilfe zu erhalten.

Gruss werdy

D
615 Beiträge seit 2009
vor 11 Jahren

Hallo Werdy

Herzlich Willkommen im Forum.

Der Kunde sollte auf dem GUI die Möglichkeit haben dass er ein Mitarbeiter wählt und dann sollten die oberen Comboboxen vom System befüllt werden.

Laut Deiner Beschreibung hat jeder Mitarbeiter nur ein Team, dieses gehört jeweils zu einer Abteilung welche einer Domäne zugeordnet ist. Somit ist ja immer eindeutig welcher Wert drinn stehen muss.
( Filtern )

Wenn der Kunde die Combobox Abteilung wählt sollten die Domäne selektiert werden und im Team natürlich nur noch die möglichen Werte angezeigt werden ebenfalls für die Mitarbeiter.

Ein ComboBox Item hat ja "Text" und "Value". Als Value nimmst du die ID. Somit weisst du genau welche Domäne selektiert sein muss (combobox.Items.First(c=>c.Value==id))...

Nach unten hast du ja N Möglichkeiten, somit kannst du einfach wieder Filtern.

MSDN - DataSet Filtern und Sortieren
Beispiele von Galileo Computing

Beste Grüsse

Diräkt

Edit:

Schau Dir das mal an : Cascading ComboBox

W
werdy Themenstarter:in
2 Beiträge seit 2012
vor 11 Jahren

Hallo Diräkt

Danke vielmals für Deine rasche Antwort.

Bezüglich der genauen Spezifikation hätte ich mir etwas mehr Mühe machen können damit es etwas verständlicher wäre. Natürlich will ich nicht die ID anzeigen - mein Ziel sollte es sein mit dem Value zu arbeiten.

Grundsätzlich funktioniert es auch schon nur die Abhängigkeiten machen mir Probleme. Also wenn ich Domäne wähle müssen meine Events dann starten und den Filter der anderen Comboboxen also Abteilung, Team und Mitarbeiter dementsprechend automatisch neu setzen.

Das Beispiel habe ich schnell angeschaut, so was habe ich mir vorgestellt und erfolglos gesucht. Wenn dies nun auch aus 3 unterschiedlichen Quellen kommt dann denke ich kann ich es für mich adaptieren. Werde es so gegen Mittag mal genauer analysieren.

Diesbezüglich schon mal vielen Dank

Finde dies hier ein schönes Forum und klingt für mich schon mal sehr erfolgsversprechend was ich da erhalten habe.

Gruss werdy

T
111 Beiträge seit 2005
vor 11 Jahren

Hallo

dies kann aber nur in einer Richtung, nämlich von oben nach unten, funktionieren. Wenn Du nämlich eine Domaine und Abteilung gewählt hast, dann siehst Du unter Team und Mitarbeiter ja nicht mehr alle Einträge.

mfG
Thomas

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo thomas.at,

sicher ist das eine gewisse Einschränkung, aber in vielen Fällen ist das trotzdem möglich, z.B. ganz zu Anfang, wo in allen Boxen noch alle Werte stehen, kann man sich als Benutzer die Richtung (noch) frei aussuchen. Aber selbst wenn man von links nach rechts vorgeht, kann es sinnvoll sein, wenn man eine Box überspringen darf und die übersprungene dann automatisch richtig gesetzt wird. Das geht aber alles nur, wenn vom Programm her immer beide Richtungen implementiert sind.

Hallo werdy,

siehe auch [FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung, um zu verhindern, dass sie die Boxen (endlos) gegenseitig aktualisieren.

Also wenn ich Domäne wähle müssen meine Events dann starten und den Filter der anderen Comboboxen also Abteilung, Team und Mitarbeiter dementsprechend automatisch neu setzen.

Ja, genauso, aber das ist doch kein Problem. (Falls doch beachte bitte vorsorglich [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore