C# OnItemSelectedIndex更改隐藏或删除选定的DropDownList项

C# OnItemSelectedIndex更改隐藏或删除选定的DropDownList项,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我相信这已经完成了,但似乎在任何地方都找不到解决方案,也无法在这么晚的时候找到解决方案 我有两个下拉列表: ddConvertFrom ddConvertTo OnItemSelectedIndexChange对于任一DropDownList,我想从另一个DropDownList中删除/隐藏所选值 到目前为止,我已经尝试过: protected void ddConvertTo_SelectedIndexChanged(object sender, EventArgs e) { fore

我相信这已经完成了,但似乎在任何地方都找不到解决方案,也无法在这么晚的时候找到解决方案

我有两个下拉列表:

ddConvertFrom
ddConvertTo

OnItemSelectedIndexChange
对于任一DropDownList,我想从另一个DropDownList中删除/隐藏所选值

到目前为止,我已经尝试过:

protected void ddConvertTo_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (ListItem li in ddConvertTo.Items)
    {
        if (ddConvertFrom.SelectedItem.Text == li.Text)
        {
            ddConvertTo.Items.Remove(ddConvertTo.Items.FindByValue(ddConvertFrom.SelectedItem.Text));
        }

    }
}
A) 为什么上述方法不起作用


B) 是否有更有效的方法执行上述操作?

您应该在绑定之前从集合中删除该项,而不是在绑定之后尝试删除该项。

好的,请确保“自动回发”为真,然后检查此项

    protected void ddConvertTo_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (ListItem li in ddConvertTo.Items)
     {
        if (ddConvertFrom.SelectedItem.Text == li.Text)
        {

             ddConvertTo.Items.Remove(ddConvertTo.Items.FindByText(ddConvertFrom.SelectedItem.Text));
             break;

        }

     }
    }

好吧,如果我是你,我不会使用服务器端控制器和回发,我使用ajax和jqueryYeah,我认为这可能是现在最好的方法,但仍然希望看到解决方案在工作之上。只需删除项并将数据绑定到下拉列表。这就是我正在做的,不是吗<代码>ddConvertTo.Items.Remove(ddConvertTo.Items.FindByValue(ddConvertFrom.SelectedItem.Text))哪里出了什么问题?我已将自动回邮设置为trueAhh绑定不是导致问题的项目,但上面的代码仍然失败。还有一个好地方会给我带来麻烦。