c# - 根据另一个列表确定一个列表的索引,反之亦然,欢迎使用 C#/VB.NET 或 JavaScript 解决方案

标签 c# javascript jquery asp.net vb.net

假设您有列表 1 (ilist1) 和列表 2 (ilist2),这两个列表都有 3 个项目。

在索引 0 item1 处,包含文本“-- Select --” 在索引 1 item2 处有文本“Yes” 在索引 2 item3 处有文本“No”

两个列表都有相同的项目。我想知道是否可以使用 SelectedIndexChanged 或类似方式将列表一选择为"is",将列表二选择为“否”,反之亦然。

例如: ilist1 = --选择-- ilist2 = --选择--

用户将 ilist1 更改为 No: ilist1 = 否 ilist2 = 是(可以在索引更改时完成)

现在,如果用户在 ilist2 上选择“否”,ilist1 将更改为"is",无需用户干预,因此 ilist 现在为: ilist1 = 是 ilist2 = 否

在其他愿望中,我希望能够对两个列表执行以下操作,而不必陷入无限循环(我希望列表在用户停止选择时停止更改索引)。

protected void IndexChanged(object sender, EventArgs e)
{
    ilist1 = (DropDownList)sender;
    if (ilist1.SelectedIndex == 0) { }
    else if (ilist1.SelectedIndex == 1) {
        ilist2.SelectedIndex = 2;
    }
    else if (ilist1.SelectedIndex == 2){
        ilist2.SelectedIndex = 1;
    }
}

请告诉我这是否可行, 谢谢大家

最佳答案

将提供伪代码的配方和排序:

  1. 在两个列表上设置 AutoPostBack =true
  2. 在 SelectedIndexChanged 上执行以下操作:

    protected void IndexChanged(object sender, EventArgs e) 
    { 
      DropDownList theList = (DropDownList)sender; 
      if(theList.ID=="Id of list 1") 
      {
         if(theList.SelectedValue=="No") 
            list2.Items.FindByValue("Yes").Selected=true;
      }
      else //list2 fired the indexchanged event
      {
           if(theList.SelectedValue=="Yes") 
            list1.Items.FindByValue("No").Selected=true;
      }
    } 
    

就按照您想要的方式设置选择而言,上面的代码可能不正确;需要注意的重要一点是 FindByValueSelected=true 的使用。如果列表中项目的索引由于某种原因发生变化;您无需修改​​代码。

关于c# - 根据另一个列表确定一个列表的索引,反之亦然,欢迎使用 C#/VB.NET 或 JavaScript 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8763447/

相关文章:

c# - Resharper 提示/技巧...这可能吗?

javascript - 合并 2 个数组对象 typescript

javascript - 时刻 fromNow 返回奇怪的结果

javascript - 为什么加载后无法获取图像宽度和高度?

jQuery UI 可对巨型列表进行排序并保存在数据库中

javascript - 删除连续重复的单词javascript

c# - WinRT XAML TextBlock - 超链接功能

c# - 找不到来自 mscorlib 的类型

c# - 生成带有 XML 注释的 WCF(windows 服务托管)客户端代理类?

javascript - 从 html() 变量中删除所有空格和制表符