Frage

Ich habe 4 Listboxen (lstStates, lstCounties, lstCities und lstZipcodes). Hier sind ein paar Einschränkungen:

  • Keine der Listenfelder sind deaktiviert.

  • Jede Listbox kann jederzeit ausgewählt werden, dh es gibt keine bestimmte Reihenfolge ist der Benutzer wählen hat.

  • Das Filtern ist vorwärts und rückwärts. Damit meine ich, wenn ein Benutzer einen Zustand von lstStates wählt, wird es filtern lstCounties, lstCities und lstZipcodes. Wenn ein Benutzer eine zipcode von lstZipcodes wählt, wird es filtern lstCities, lstCounties und lstStates.

  • Die Listboxen ermöglichen eine Mehrfachauswahl.

Jede Listbox ist mit einem Datentabelle gebunden seine ursprünglichen Daten zu erhalten. Die Datentabelle wird von einer SQLServer gespeicherte Prozedur abgerufen. Jedes Listenfeld seine eigenen gespeicherten Prozedur hat, beispielsweise hat eine lstStates genannt GetStates die eine Säule (Zustand) und der Listboxen Datavaluefield und Datatextfield kehrt beide auf Zustand gesetzt. Ähnlich wie lstStates wird lstCities auf eine Datentabelle gebunden, die eine Spalte von einer GetCities gespeicherte Prozedur wird die Stadt ist.

Eine andere Sache, ich darauf hinweisen möchte, ist, dass ich ein Object am Anschluss der Datentabelle zu erhalten.

War es hilfreich?

Lösung

Bereits gefragt worden: Was ist der effizienteste Weg, Listboxen filtern basierend auf Auswahl eines anderen in c #?

[Bearbeiten] OK, was Sie tun müssen, ist ein Ereignis in dem jeweiligen [MyListBox] _SelectedIndexChanged Ereignisse. Wenn die Auswahl geändert wird, müssen Sie alle anderen Listboxen auf diese Auswahl basierend aufzufrischen. Ich gehe davon aus, dass dies benötigt, von der Datenbank behandelt werden, da der Verknüpfung Staaten ZipCodes andere Art und Weise hässlich wäre. So vermutlich Ihre Daten für die Staaten <-> Zips <-> Counties Beziehungen sind irgendwo in Ihrem db.

So werden Sie Procs in Ihrem db (oder LINQ mittlere Schicht) haben müssen, dass die Staaten von Zips bekommen und so weiter. Auf jeder Veranstaltung Auswahl geändert, senden Sie die neue Auswahl zurück an die DB sproc und dann die listbox rebind auf die Rückgabedaten. Sie sollten in der Lage sein, eine sproc für jeden zu machen, dass alle Staaten zurück, wenn kein Reißverschluss und so weiter geführt wird. [/ Edit]

Andere Tipps

Um zu klären, auf Ihrer Anfangslast der Seite, Sie ALLE zipcodes werden geladen, alle Städte, alle Staaten und alle Länder?

Dies scheint ein wenig umständlich zu mir. Dies ist die Art von Anforderung I in Frage stellt. (Zugegeben, weiß ich nicht, dass Sie es nicht bereits in Frage haben oder dass einige gute Antwort kam von ihm).

ScriptManager.RegisterStartupScript (Seite, Page.GetType (), "bab", "CacheItems ();", true);

    var ddlText, ddlValue, ddl, lblMesg;     CacheItems Funktion () {         ddlText = new Array ();         ddlValue = new Array ();         ddl = document.getElementById ( "");         for (var i = 0; i
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top