的列表中存在下面的情況:DropDownList中有一個的SelectedValue這是無效的,因爲它沒有在項目
在DropDownList中的選擇是從數據庫表列出了可接受值的約束。在一個時間點的值分別爲:
一個 兩個 三 四
在某一點後,可接受值的列表更改爲:
一個 兩個 四 五
但是,存儲下拉列表值的字段在某些行上仍包含「三個」值。當加載這些行之一,並設置的SelectedValue這樣:
dd.SelectedValue = data.Field; // where data.Field == "Three"
...拋出一個錯誤,指出:「DD」擁有的SelectedValue,因爲它不在項目列表中存在哪些無效。
數據清理不是這裏的一個選項。這會給客戶帶來問題,因爲存儲值對於已經創建的數據不是無效的選擇,而是對新創建的數據無效的選擇。
其他人怎麼處理這種情況?
謝謝。目前爲止,我最喜歡這個解決方案。其他很多答案都建議將這些業務規則移到數據庫(我不喜歡)或者不會顯示當前值,並且在這種情況下絕對不能接受。雖然在這種特殊情況下,我會允許重新保存,因爲該值對於以前創建的數據仍然有效。只有新數據不應具有這些值。只有在舊數據上動態添加無效值才能充分解決問題。 – 2009-12-08 19:33:15