一个下拉列表的选定索引,设置页面上的所有下拉列表
本文关键字:下拉列表 设置 一个 索引 | 更新日期: 2023-09-27 18:15:51
我有一个页面上有4个下拉列表的网页。在页面加载方法中,我有设置下拉列表值的代码。问题是,当我设置任何一个下拉列表时,它会设置所有的下拉列表。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//populating the dropdownlist with values
for (int i = 0; i < 60; i++)
{
ListItem temp = new ListItem(i + "");
ddl_EndMin.Items.Add(temp);
ddl_StartMin.Items.Add(temp);
if (i < 24)
{
ddl_EndHour.Items.Add(temp);
ddl_StartHour.Items.Add(temp);
}
}
//Setting the dropdownlists with the values from the conference variable
ddl_EndHour.SelectedIndex = conference.EndDate.Hour;
ddl_StartMin.SelectedIndex = conference.StartDate.Minute;
ddl_StartHour.SelectedIndex = conference.StartDate.Hour;
ddl_EndMin.SelectedIndex = conference.EndDate.Minute;
}
}
}
我不知道为什么设置这些下拉列表中的一个选择索引集所有的。我还尝试用ListBox替换其中一个,ListBox的值也设置好了。有代码在另一个页面上设置2下拉列表使用这个选定的索引方法,但使用状态而不是数字,这工作得很好。
ddl_EndMin.SelectedIndex = ddl_EndMin.Items.IndexOf(ddl_EndMin.Items.FindByValue(conference.EndDate.Minute.ToString()));
ddl_EndHour.SelectedIndex = ddl_EndHour.Items.IndexOf(ddl_EndHour.Items.FindByValue(conference.EndDate.Hour.ToString()));
我尝试复制/粘贴代码到什么我目前正在工作和更改名称,我得到了相同的结果。如果您能告诉我为什么会出现这个问题,我将不胜感激。
我猜这是因为你在所有的下拉菜单中使用了相同的项目集合。
当你在其中一个项目上设置selected
属性时,它在所有列表中都具有该属性,因为它在所有列表中都是相同的对象引用。
如果在循环
中执行此操作会发生什么? ListItem temp = new ListItem(i + "");
ddl_EndMin.Items.Add(temp);
temp = new ListItem(i + "");
ddl_StartMin.Items.Add(temp);
if (i < 24)
{
temp = new ListItem(i + "");
ddl_EndHour.Items.Add(temp);
temp = new ListItem(i + "");
ddl_StartHour.Items.Add(temp);
}