dropDownList控件绑定数据后,在显示时默认情况下是第一个选项处于选中状态。这时,展开控件的所有选项,如果第一次选择的就是默认项,那么,dropdownlist_selectedChange事件将不会触发,只有在选择一次非默认选项后,再返回来选择才会有效。
例如:下图为查询某机房考生信息。多有机房号随着页面加载被绑定到dropdownlist。默认选中项为第一个数据(501机房)。这时,如果我展开所有机房,直接选择501机房,那么,程序时不会执行任何操作的。只有先查询一次其他机房信息后,再返回来查询501才会显示501机房的考生信息。
,
那么,要想变得完美一点,怎么办呢?
1. dropdownlist绑定的数据源不变,页面加载时默认选项的信息也随着页面加载同时显示。如果操作复杂时,页面加载速度会很慢。
2. 给dropdownlist添加一个默认选项(“——请选择——”),这样问题就解决了。
代码中dt为控件绑定的数据源
//datatable中增加一行,并在机房号一列赋值"--请选择--"
dt.Rows.Add("--请选择--");
dplRoomNo.DataSource = dt;
dplRoomNo.DataTextField = "roomNo";
dplRoomNo.DataBind();
//根据指定文字找到对应选项
ListItem item = dplRoomNo.Items.FindByText("--请选择--");
//如果该选项不为null,则让该选项处于选中状态
//如果不进行这个判断,而选项集合中没有对应的选项,则会抛出异常
if (item != null)
{
item.Selected = true;
}
注释:FindByText (string text):在选项集合中查找指定文字的选项