下拉列表限制可选值

时间:2013-06-26 09:55:11

标签: c# asp.net

我在表单中有许多下拉列表,所有这些下拉列表都填充了数据库表中的相同Taskid

现在,当我在任何下拉列表中选择了某个值时,此值不应显示在任何其他下拉列表中。

2 个答案:

答案 0 :(得分:0)

您可以进行一些验证,以便在用户提交时,可以检查下拉列表中的匹配项。

或者您需要考虑使用.selectedIndexChanged事件:

示例:http://msdn.microsoft.com/en-us/library/1wd7hsyy(v=vs.100).aspx

如果在此事件中放置了一些逻辑,则可以在每个列表中选择项目时删除项目/取消选择其他列表中的项目。如果您删除项目,这可能会变得复杂,因为每次选择更改时都必须重新绑定,并且每次进行选择时都要重新发布。

我会选择选项1:根据您问题中的详细信息进行验证检查。

答案 1 :(得分:0)

伪代码:

protected void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
    DropDownList ddl = (DropDownList) sender;
    IEnumerable<ListItem> selectedTasks = ddl.Items
        .Cast<ListItem>().Where(li => li.Selected);

    foreach(ListItem item in selectedTasks)
    {
        DropDownList2.Items.Remove(item);
        DropDownList3.Items.Remove(item);
        DropDownList4.Items.Remove(item);
        DropDownList5.Items.Remove(item);
        // ...
    }
}