我在一个表单中有许多下拉列表,所有这些都用Taskid
数据库表中的相同 's 填充。
现在,当我在任何下拉列表中选择了某个值时,该值不应显示在任何其他下拉列表中。
您可以进行一些验证,以便当用户提交时,它可以检查下拉列表中的匹配项目。
或者您需要考虑使用该.selectedIndexChanged
事件:
示例: http: //msdn.microsoft.com/en-us/library/1wd7hsyy (v=vs.100).aspx
如果您在此事件中放置一些逻辑,则可以在每个列表中选择一个项目时删除其他列表中的项目/取消选择项目。如果您删除项目,这可能会变得复杂,因为每次选择更改时您都必须重新绑定并在每次进行选择时回发。
我会选择选项 1:根据您问题中的详细信息进行验证检查。
伪代码:
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);
// ...
}
}