[英]asp.net 4 dropdownlist findByText not working for dynamic list
我有一個下拉列表,其數據源來自 SQL 服務器。
<asp:DropDownList ID="State" runat="server" DataSourceID="SqlDataSource1" DataTextField="STATE_NAME" DataValueField="STATE_FIPS">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT DISTINCT [STATE_NAME], [STATE_FIPS] FROM [county] order by [STATE_NAME]">
</asp:SqlDataSource>
我想預先填充列表中的值。 我使用DropDownList.SelectedIndex = DropDownList.Items.IndexOf(DropDownList.Items.FindByValue(YourValueHere))
。 但它不起作用。 它給了我一個來自DropDownList.Items.FindByValue(YourValueHere)
的 null 。
如果我使用 static 列表項,相同的代碼可以正常工作,例如:
<asp:DropDownList ID="ddl" runat="server">
<asp:ListItem>item1</asp:ListItem>
<asp:ListItem>item2</asp:ListItem>
<asp:ListItem>item3</asp:ListItem>
<asp:ListItem>item4</asp:ListItem>
</asp:DropDownList>
有任何想法嗎? 謝謝!
直接使用下拉列表的SelectedValue
屬性怎么樣: DropDownList.SelectedValue = YourValueHere;
?
編輯:我有你的問題,你必須 Select DropDownList Class
而不是id of your dropdownlist control
。 下面的代碼是有效的,我測試了它。
ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue("item3"));
您可以使用以下代碼,它適用於 static 和動態值:
ddl.FindItemByText("YourText").Selected = true;
我有同樣的問題。 但是在我的情況下,下拉列表是數據綁定的兩次。 1個我自己,1個通過家長控制。 在第二個數據綁定之后,選定的索引被重置。
所以檢查控件是否被數據綁定兩次。
您還可以在 de void yourdropdown_DataBound(object sender, EventArgs e) 方法中實現對項目的選擇。 如果你斷點這個方法,你會注意到數據綁定完成了兩次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.