2013-06-26 45 views
-1

我有一個表格中的下拉列表的數量,所有這些從數據庫表中填充相同的Taskid's。Dropdownlist限制可選值

現在,當我在任何下拉列表中選擇了某個值時,此值不應該顯示在任何其他下拉列表中。

+3

請隨時給一個問題:在下拉列表中選擇值驗證(http://stackoverflow.com/questions/17314331/selected-value-validation-in-dropdown -list)。直到你展示你已經嘗試過的東西,那個人纔會重新開放。編輯 - 哦,upvotes。爲什麼? – CodeCaster

+0

對於每個下拉列表,但所選的一個搜索名爲「Items」的集合中的任務ID並將其刪除。 –

回答

0

您可以進行一些驗證,以便當用戶提交時,它可以檢查下拉列表中的匹配項目。

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

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

如果你把一些邏輯在這種情況下,你可以刪除的項目/取消選擇其他列表中的項目時,選定項目在每個列表中。如果您刪除項目,這可能會變得複雜,因爲每次選擇更改和每次進行選擇時回發都必須重新綁定。

我會選擇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); 
     // ... 
    } 
} 
+0

下一個問題:_「當用戶首先在列表1中選擇A然後B時,其他列表中不再顯示A或B」_。 – CodeCaster

+0

@CodeCaster:問題是什麼?如果他想「重置」下拉列表,他需要提供一個按鈕(「重新加載」或「取消」)並實施適當的邏輯。 –

+0

這就是我的意思,謝謝。 – CodeCaster