1
我有一个ASP.NET 4 WebForm与4下拉表中。更改SelectedIndex of 1 DropDown更改其他DropDownLists SelectedIndex
<table>
<tr><td><asp:DropDownList ID='dd1' runat='server' /></td></tr>
<tr><td><asp:DropDownList ID='dd2' runat='server' /></td></tr>
<tr><td><asp:DropDownList ID='dd3' runat='server' /></td></tr>
<tr><td><asp:DropDownList ID='dd4' runat='server' /></td></tr>
</table>
在后面的代码中,我加载这些项目,使他们都匹配。然后,我从数据库中检索数据,并调用每个数据库记录的方法来设置下拉列表的选定索引。
int i = 0;
foreach (var rec in dataRecords) {
switch (i) {
case 0:
SetDropDownValue(rec, dd1);
break;
case 1:
SetDropDownValue(rec, dd2);
break;
case 2:
SetDropDownValue(rec, dd3);
break;
case 3: ...
case 4: ...
default: ...
}
i++;
private void SetDropDownValue(DBRecord selectedRecord, DropDownList dl)
{
string importantVal = selectedRecord.Field;
var li = dl.Items.FindByValue(importanVal);
dl.SelectedIndex = dl.Items.IndexOf(li);
}
单步调试记录是正确的,下拉列表在SetDropDownValue方法中是正确的。
只要dl.SelectedIndex = dl.Items.IndexOf(li);执行,所有先前的下拉列表'传递给该方法的选定索引也被更新。因此,当ddl2的选定索引更改时,ddl1将更改为ddl2的新选定索引。当ddl3更新时,ddl1 & ddl2被更新。当ddl4被设置时,ddl1,ddl2和ddl3选择的索引被更新。