2009-07-21 9 views
0

Ich habe eine Dropdown-Liste, die aus einer Datenbank gefüllt wird. Das funktioniert gut. Der Nichtselektionswert des Steuerelements ist -1 und das Nichtauswahlkennzeichen ist "..". Wenn ich versuche, einen vorhandenen Datensatz zur Bearbeitung zu öffnen, kann ich nicht die richtige Zeile auswählen. Die ID besteht aus drei Teilen: 111A-DD-12345. Wenn der Datensatz von der Datenbank zurückgegeben wird, wird die ID in die drei Felder geparst. Der erste und der dritte Teil sind Textfelder auf der Seite, aber der mittlere Teil ist eine Dropdown-Liste. Wenn wir einen bestehenden Datensatz zu öffnen, analysieren wir die Identifikation mit dem folgenden Code aus:Einstellung richtige Zeile der Dropdown-Liste funktioniert nicht

string[] chunks = cID.Split('-'); 
ddOffice.SelectedItem.Text = chunks[1]; 

Dies ändert sich aber nur die erste Zeile des DDL DD (das Beispiel ID oben unter Verwendung), so landen wir mit zwei Zeilen im ddl, die denselben angezeigten Text haben. Wie programmiere ich die Dropdownliste programmgesteuert auf den richtigen Wert?

Edit: Wir haben auch versucht ddOffice.SelectedValue = Chunks [1] , aber das zeigt nur .. der Standard, nicht ausgewählte Zeile.

TIA, Theresa

Antwort

1

Try this:

ddOffice.SelectedIndex = ddOffice.Items.IndexOf(ddOffice.Items.FindByText(chunks[1])); 
+1

Ich habe immer festgestellt, dass die Arbeit mit dem Index weitaus zuverlässiger ist als die Verwendung des Textwerts der Box. Die Textverarbeitung kann wackelig sein. – joshlrogers

+0

Danke, Matthew! Das hat perfekt funktioniert. – Theresa

0

(Edited) Sie sind die Text-Eigenschaft des aktuellen SelectedItem Einstellung und nicht die Einstellung der SelectedItem selbst. Abhängig davon, wie Ihre Daten stammen, legen Sie stattdessen den SelectedIndex oder den SelectedValue fest.

+0

Ja, das habe ich gemerkt, nachdem ich die Frage gepostet habe. – Theresa

+0

Ist es nicht immer der Weg .. – stuartd

Verwandte Themen