我需要在加载页面时从下拉列表中自动选择一个项目。 .aspx代码:
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="fullname" DataValueField="fullname">
<asp:ListItem>Any</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PHSNew %>" SelectCommand="SELECT DISTINCT [fullname] FROM [web_Users] WHERE ([role] = @role) ORDER BY [fullname]">
<SelectParameters>
<asp:Parameter DefaultValue="md" Name="role" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
现在例如,如果dropdownlist有4个项目(John,Albert,Epstien和Any)。 在.cs文件中我运行sql查询以从数据库中获取字符串名称,该名称应在此下拉列表中选择。
我刚使用DropDownList1.selectedValue= name
。有效
但现在问题是数据库中的数据不断变化。我可能会得到字符串名称=“Renzo”。 Renzo是数据库的一部分,但现在已被删除。在那种情况下,我必须选择“任何”。
我尝试执行此代码:
string s = "Albert";
ListItemCollection li = DropDownList1.Items;
foreach (ListItem l in li)
{
string s1 = l.ToString();
if (l.ToString() == s)
{
DropDownList1.SelectedValue = s;
return;
}
else
{
DropDownList1.SelectedValue = "Any";
}
}
我在Page_Load 中调用此代码。
但是我只能从DropDownlist1获得一个项目,那就是“Any”。 如何获取所有项目并从下拉列表中自动选择特定项目?
答案 0 :(得分:0)
我认为您的代码存在的问题是您使用的是l.ToString()
。您可能希望在比较中使用l.Value
。
另一种方法是使用项目集合的查找方法。
string s = "Albert";
ListItem li = DropDownList1.Items.FindByValue(s);
if (li != null)
{
li.Selected = true;
}
else
{
DropDownList1.SelectedValue = "Any";
}