我有一个ASP.NET(VB)下拉列表,列出了用户可以在表单上选择的国家/地区。
前面的代码:
<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>
这里出了什么问题/坏了/有问题?
答案 0 :(得分:1)
而不是.SelectedIndex
尝试:
DropDownListCountry.SelectedValue = DropDownListCountry.Items(
DropDownListCountry.Items.FindByText("United Kingdom"))