第一种,循环判断,确定某值是否包含在某项内,不一定相等,如果是相等的,可以用第二种
for (int i = 0; i < DropDownList1.Items.Count; i++)
{
if (DropDownList1.Items[i].Text.Contains("值"))
{
DropDownList1.Items[i].Selected = true;
break;
}
}
第二种
ListItem li=this.DropDownList1.Items.FindByText("值");//findbyvalue是在dropdownlist项的value值中查找的
if (li != null)
{
li.Selected = true;
}
参考:http://bbs.csdn.net/topics/100120697
asp.net 不能在 DropDownList 中选择多个项
前台代码是这样的:
<asp:DropDownList ID="ddlUser" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text=""></asp:ListItem>
</asp:DropDownList>
后台代码:
DataSet ds = Service_peopleBLL.GetPeopleBLL();
Note.GridviewControl ddl = new Note.GridviewControl();
ddl.DrDownListBind(ddlUser, ds.Tables[0], "people_name");//绑定数据
ListItem li = ddlUser.Items.FindByText(dt.Rows[0]["TargetUserName"].ToString());
if (li != null)//查到的值确保是唯一的
{
li.Selected = true;//这种情况(当相中项不是默认的第一项时就会出错,用下面这句就不会错;如果把前台代码 去掉 AppendDataBoundItems="true"或者<asp:ListItem Text=""></asp:ListItem>这个选项,用这句也不会出错,怀疑是因为这个属性造成的错误,(猜测这个属性会默认选中第一项,测试了下,是因为dropdownlist绑定数据后会默认选中第一项)
//ddlUser.SelectedIndex = ddlUser.Items.IndexOf(li);(推荐用这种方式)
}
或者这样:
ListItem li = ddlUser.Items.FindByText(dt.Rows[0]["TargetUserName"].ToString());
if (li != null)
{
this.ddlUser.ClearSelection();//或者ddlUser.SelectedIndex = -1;
li.Selected = true;//这样,清除之前的选项
}
参考:
http://www.jb51.net/article/31539.htm