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.