我在 SQL 表中有一个值列表,用于填充 DropDownList,具有唯一的整数作为每个项目的值和字符串作为可见文本(通过 SqlDataSource)。数据库中还有第三个字段,它是一个标志,指示列表项是否处于活动状态(非活动项目不会显示在 DropDownList 中)
在下拉列表中所做的选择作为整数值(作为构成整个记录的数据集的一部分)存储在数据库中,而不是文本值。
随着时间的推移,可以通过将 DropDownList 中的项目标记为非活动来移除这些项目。但是,仍然需要打开旧记录,这些记录可能有一个现在不活动的项目作为其数据的一部分......
我的问题是,确保旧记录下拉列表中包含缺失值的最佳方法是什么?
想到的两种方法是:
仅使用当前活动的项目填充 DropDownList 并在加载记录时捕获应用程序尝试选择不存在的值时,返回到数据库以查看它应该是什么(文本值)并手动添加它进入下拉菜单。
或者...
使用所有列表项(活动和非活动)填充 DropDownList,加载记录,然后以编程方式删除所有非活动项(对现在选择的任何项执行)。
这些似乎都不是特别有效,所以我想知道这种事情是否有最佳实践?