Hi,
ich habe folgende Werte in der DropDownList
I: Text
0: Main A
1:- Sub 1
2: Main B
3: - Sub 1
Waehle ich 3: - Sub 1 bekomme ich als Index den 1. Treffer mit diesem Text, und zwar Sub 1 mit der ID 1.
Eienr eine Idee was da nich passt?
"den ersten Treffer" ?
Wie genau rufst du denn den SelectedIndex bzw. den Wert der DropDownList ab?
Du kannst den Wert auch mit der Eigenschaft SelectedValue abrufen.
Hi,
"den ersten Treffer mit dem Text". Kein PostBack-Problem also.
DropDownList.SelectedIndex - Welche Alternativen dazu gibt's?
SelectedValue, wie von Phil_B auch bereits vorgeschlagen.
be the hammer, not the nail!
Hallo Dizzy.w3,
wenn Du ListItems mit dem selben Text verwenden willst, musst Du zumindest einen eindeutigen Wert für ListItem.Value angeben - sonst können die nicht unterschieden werden.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo Dizzy,
Du könntest es mal so versuchen:
DropDownList ddl = new DropDownList();
ddl.Items.Add(new ListItem("I: Text", "I"));
ddl.Items.Add(new ListItem("0: Main A", "0"));
ddl.Items.Add(new ListItem("1:- Sub 1", "1"));
ddl.Items.Add(new ListItem("2: Main B", "2"));
ddl.Items.Add(new ListItem("3: - Sub 1", "3"));
Dann bekommst du nach einem PostBack auch den SelectedIndex + SelectedValue richtig mit.
Wie MarsStein schon geschrieben hat, solltest Du den einzelnen Einträgen eindeutige IDs zuweisen (siehe oben).
Danke euch, ich werde es nun so machen, dass ich die ID in den Value als String speicher. Es ist nicht sauber, aber wird sicher funktionieren.
Das ist nicht unsauber, das ist die normale Vorgehensweise.
be the hammer, not the nail!
Was ist daran Deiner Meinung nach "unsauber"?
Die ListItem.Value-Eigenschaft ist => immer ≤ ein String.
Wenn Du öfters mit der DropDownList arbeitest, wirst Du sicher schnell merken, warum das ein String und kein Int32 oder anderer DatenTyp ist.
Wenn man einem Benutzer eine beliebige Auswahl anbieten will, die im Laufe der Zeit erweitert wird, kommt man mit Integern schnell an die Grenze der Unübersichtlichkeit: Es schleichen sich schneller Fehler ein.
Wenn der Value-Wert ein sinnvoll gewählter String ist, steigt man später auch noch durch 😃
Salute zusammen
Das ist nicht unsauber, das ist die normale Vorgehensweise.
Da stimme ich bei.
Die Benutzung von "value" ist so gedacht. Was für Werte du da reinpackst ist egal.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011