我想设置基于查询字符串中传递的值的未绑定DropDownList的值。这里是我的代码:DropDownList设置错误SelectedValue
ListItem item = null;
for (int x = 0; x < 60; x++)
{
item = new ListItem(x.ToString("D2"), x.ToString("D2"));
ddStartMinutes.Items.Add(item);
ddEndMinutes.Items.Add(item);
if (x < 24)
{
ddStartHours.Items.Add(item);
ddEndHours.Items.Add(item);
}
}
if (Request.QueryString.Count > 5)
{
string startDate = Request.QueryString["startDate"];
string startHour = Request.QueryString["startHour"];
string startMin = Request.QueryString["startMin"];
string endDate = Request.QueryString["endDate"];
string endHour = Request.QueryString["endHour"];
string endMin = Request.QueryString["endMin"];
string cabinet = Request.QueryString["cabinet"];
txtStartDate.Text = startDate;
txtEndDate.Text = endDate;
ddStartHours.SelectedValue = startHour;
ddStartMinutes.SelectedValue = startMin;
ddEndHours.SelectedValue = endHour;
ddEndMinutes.SelectedValue = endMin;
ddCabinets.SelectedValue = cabinet;
runReport();
}
我从构建下拉列表开始,然后尝试根据查询字符串设置选定的值。所有下拉菜单都设置为endMin的值,而不是正确的值。
如果我在runReport()之前调试并添加一个断点,我看到每个字符串变量都具有来自查询字符串的正确值,但每个DropDownList selectedValues都设置为endMin而不是其查询字符串值。
例如,如果查询字符串中的startHour是1,startMin是2,endHour是3,endMin是4,那么每个字符串变量都会从查询字符串中正确设置,但下拉选择的值都会被设置到4.
我很好难倒。有任何想法吗?
也许发生这种情况,因为你在下拉之间共享项目 – 2012-08-09 14:06:17
非常好的点Amiram;如果您在下拉菜单之间共享项目;在ddStartHours中选择一个项目也会在ddEndHours中选择相同的项目(反之亦然) – 2012-08-09 14:12:32
Amiram--确实是这个问题!我在每次添加之前复制了item = new ListItem行,并解决了问题。 如果您将其添加为答案,我会将其标记为正确。 – tkooser 2012-08-09 14:20:52