的列表中存在下面的情况:DropDownList中有一个的SelectedValue这是无效的,因为它没有在项目
在DropDownList中的选择是从数据库表列出了可接受值的约束。在一个时间点的值分别为:
一个 两个 三 四
在某一点后,可接受值的列表更改为:
一个 两个 四 五
但是,存储下拉列表值的字段在某些行上仍包含“三个”值。当加载这些行之一,并设置的SelectedValue这样:
dd.SelectedValue = data.Field; // where data.Field == "Three"
...抛出一个错误,指出:“DD”拥有的SelectedValue,因为它不在项目列表中存在哪些无效。
数据清理不是这里的一个选项。这会给客户带来问题,因为存储值对于已经创建的数据不是无效的选择,而是对新创建的数据无效的选择。
其他人怎么处理这种情况?
谢谢。目前为止,我最喜欢这个解决方案。其他很多答案都建议将这些业务规则移到数据库(我不喜欢)或者不会显示当前值,并且在这种情况下绝对不能接受。虽然在这种特殊情况下,我会允许重新保存,因为该值对于以前创建的数据仍然有效。只有新数据不应具有这些值。只有在旧数据上动态添加无效值才能充分解决问题。 – 2009-12-08 19:33:15