クエリ文字列で渡された値に基づいて、バインドされていない DropDownList の値を設定しようとしています。これが私のコードです:
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 に設定されます。
私はかなり困惑しています。何か案は?