首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改SelectedIndex of 1 DropDown更改其他DropDownLists的SelectedIndex

更改SelectedIndex of 1 DropDown更改其他DropDownLists的SelectedIndex
EN

Stack Overflow用户
提问于 2010-08-15 23:40:40
回答 1查看 898关注 0票数 1

我有一个ASP.NET 4 WebForm,表中有4个下拉列表。

代码语言:javascript
复制
<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>

在后面的代码中,我加载这些项,以便它们都匹配。然后,我从数据库中检索数据,并为每个db记录调用一个方法来设置下拉列表的选定索引。

代码语言:javascript
复制
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 2的新选定索引。当ddl3被更新时,ddl1和ddl2会被更新。设置ddl4时,将更新ddl1、ddl2和ddl3选定的索引。

EN

回答 1

Stack Overflow用户

发布于 2010-08-16 00:15:07

当我加载下拉列表时,我做了这样的事情:

代码语言:javascript
复制
foreach (var dropDownOption in DropDownOptions) {
  ListItem li = new ListItem(dropDownOption.ValueField);
  dd1.Items.Add(li);
  dd2.Items.Add(li);
  ...
}

所以对于每个列表,所有的ListItems都是相同的。

为了解决这个问题,我必须为我想要添加的每个下拉列表创建一个新的ListItem。

代码语言:javascript
复制
ListItem li = new ListItem(dropDownOption.ValueField);
dd1.Items.Add(li);
li = new ListItem(dropDownOption.ValueField);
dd2.Items.Add(li);
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3489740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档