我有一個ASP.NET(VB)下拉列表,其中列出了用戶要在表單上選擇的國家/地區。DropDownList Items.FindByText正在插入:"已選中= "正確
代碼前面:
<asp:DropDownList ID="DropDownListCountry" runat="server" CssClass="form-control"
DataSourceID="SqlDataSourcecountryList" DataTextField="country_name_long" DataValueField="country_name_short">
</asp:DropDownList>
僅供參考,既country_name_long
和country_name_short
包含在數據庫中的相同的值/文本。
在後面,我選擇「英國」作爲默認選項的代碼:
DropDownListCountry.DataBind()
DropDownListCountry.Items.FindByText("United Kingdom").Selected = True
我用這個也試過,但它產生相同的結果:
DropDownListCountry.DataBind()
DropDownListCountry.SelectedIndex = DropDownListCountry.Items.IndexOf(DropDownListCountry.Items.FindByText("United Kingdom"))
此代碼似乎插入了一些非常錯誤的東西,當我然後查看最終結果HTML的源:
<option value="Ukraine">Ukraine</option>
<option value="United Arab Erimates">United Arab Emirates</option>
<option selected="selected" value="United Kingdom" Selected="True">United Kingdom</option>
<option value="United States of America">United States of America</option>
<option value="Uraguay">Uruguay</option>
您會從英國的行中看到,一些HTML似乎是在運行中生成的。
預期結果:
<option selected="selected" value="United Kingdom">United Kingdom</option>
實際結果:
<option selected="selected" value="United Kingdom" Selected="True">United Kingdom</option>
什麼是錯/破/故障嗎?
兩個問題,更像是一個理智檢查。 1.如果您不將任何項目標記爲已選項,會發生什麼情況? 2.如果您將其他國家標記爲選中,是否會發生同樣的情況? – Andrei
Ahhh FFS。夥伴,你釘了它。果然,沒有一個國家受到這個問題的影響。你會相信英國的DB行實際上包含了腐敗的HTML!謝謝,我的朋友! – Rich
所以很尷尬:(對我來說關閉/忽略這個stackoverflow問題的正確方法是什麼? – Rich