4 Stimmen

DropDownList Ärgernis: gleicher Wert löst kein Ereignis aus

Ich habe ein Dropdownlisten-Steuerelement mit verschiedenen Texteigenschaften gefüllt, aber jeder Text Eigenschaften hatte den gleichen Wert (Texteigenschaft war A, Wert Eigenschaften ist blah, Texteigenschaft war B, Wert Eigenschaften ist blahblah, etc... )

ASP.net prüft Werteigenschaften nur beim Postback und da ALLE Werte gleich waren (aus Grund testen) dieses kleine lästige Verhalten passiert. Gibt es ein Workaround? Bedeutet dies, dass Sie nicht nie den Wert gleich sein können?

0voto

samjudson Punkte 54780

Wenn Sie sich an die Zeit vor ASP.Net zurückerinnern, dann ist das Einzige, was bei einer Formularübermittlung von einer <SELECT> ist die VALUE de la <OPTION> . ASP.Net ermittelt dann effektiv, welches Element ausgewählt ist, indem es diesen Wert in der Liste der Datenelemente nachschlägt.

Wenn Sie zwei Elemente mit demselben Wert, aber unterschiedlichen Beschriftungen haben, werden Sie feststellen, dass bei einem Postback beim nächsten Laden des Formulars das erste Element angezeigt wird, auch wenn Sie das zweite ausgewählt haben, bevor Sie den Postback durchgeführt haben.


Wenn Sie einen Schritt zurücktreten und Ihre ursprüngliche Datenquelle betrachten - wie würden Sie feststellen, welcher Textwert ausgewählt wurde, wenn Sie nur den Wert haben? Wie würden Sie diesen Wert aus einer Datenbank oder aus einer Liste auswählen? Wie würden Sie diese Zeile in der Datenbank aktualisieren? Wenn Sie es versuchen, werden Sie feststellen, dass .Net eine Exception auslöst, weil es die Zeile nicht eindeutig identifizieren kann.

Daher müssen Sie Ihren Daten einen eindeutigen Schlüssel hinzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X