2016-07-07 7 views
2

Ich habe eine ASP.NET (VB) Dropdown-Liste, die Länder für den Benutzer auf einem Formular auswählen.DropDownList Items.FindByText wird eingefügt: " Ausgewählt = " True

-Code vor:

<asp:DropDownList ID="DropDownListCountry" runat="server" CssClass="form-control" 
    DataSourceID="SqlDataSourcecountryList" DataTextField="country_name_long" DataValueField="country_name_short"> 
</asp:DropDownList> 

FYI, beide country_name_long und country_name_short enthalten die gleichen Werte/Text in dieser Datenbank enthalten.

Im Code hinter ich ‚Vereinigtes Königreich‘ als Standard-Gewählter Punkt bin Auswahl:

DropDownListCountry.DataBind() 
DropDownListCountry.Items.FindByText("United Kingdom").Selected = True 

ich auch schon versucht, diese mit, aber es erzeugt das gleiche Ergebnis:

DropDownListCountry.DataBind() 
DropDownListCountry.SelectedIndex = DropDownListCountry.Items.IndexOf(DropDownListCountry.Items.FindByText("United Kingdom")) 

Dieser Code scheint etwas sehr falsch einzufügen, wenn ich dann die Quelle des Endergebnisses HTML sehe:

Aus der Zeile in Großbritannien wird ersichtlich, dass HTML scheinbar spontan generiert wurde.

Ergebnis Erwartet:

<option selected="selected" value="United Kingdom">United Kingdom</option> 

Tatsächliches Ergebnis:

<option selected="selected" value="United Kingdom&quot; Selected=&quot;True">United Kingdom</option> 

Was ist los/gebrochen/hier defekt?

+1

Zwei Fragen, mehr wie ein Gesundheits-Checks. 1. Was passiert, wenn Sie keinen Artikel als ausgewählt markieren? 2. Passiert genau dasselbe, wenn Sie ein anderes Land als ausgewählt markieren? – Andrei

+0

Ahhh FFS. Kumpel, du hast es geschafft. Tatsächlich war kein einziges anderes Land von diesem Problem betroffen. Würdest du glauben, dass die DB-Zeile für Großbritannien tatsächlich das korrupte HTML enthält !!!! Danke mein Freund! – Rich

+0

So peinlich :(Was ist der richtige Weg für mich zu schließen/ignorieren Sie diese Stackoverflow-Problem? – Rich

Antwort

1

Anstatt .SelectedIndex Versuch:

DropDownListCountry.SelectedValue = DropDownListCountry.Items(
DropDownListCountry.Items.FindByText("United Kingdom")) 
+0

Ich fürchte, dass löst einen Fehler von: Wert des Typs 'System.Web.UI.WebControls.ListItem' kann nicht in 'Integer konvertiert werden ' – Rich

+0

@Rich Sind Sie sicher, dass Sie den Anruf zu '.IndexOf' entfernt haben? –

+0

Ja, Sir, komplett - ich habe meine Zeile auskommentiert und kopiert und eingefügt Ihre Zeile in ihrer Gesamtheit - http://pasteboard.co/8EfgMs7D0.png – Rich

Verwandte Themen