c#-一个下拉列表的选定索引设置页面上的所有下拉列表
作者:互联网
我的网页上有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()));
我尝试将代码复制/粘贴到我当前正在处理的代码中,并更改名称,但得到的结果相同.您可以向我提供任何有关为什么会出现此问题的见解,将不胜感激.
解决方法:
猜测是因为您在所有下拉列表中都使用了相同的项目集合.
然后,当您在其中一项上设置所选属性时,它在所有列表中都具有该属性,因为它在所有列表中都是相同的对象引用.
如果在循环中执行此操作会发生什么
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);
}
标签:drop-down-menu,asp-net,c 来源: https://codeday.me/bug/20191123/2066036.html