【发布时间】:2009-05-16 19:22:12
【问题描述】:
我在数据库中有一个存储4个类别的表,表的结构是ID(GUID),描述。我将类别加载到下拉列表(asp.net webform)中,以允许人们根据他们选择的内容来选择一个类别。然后,我将显示与他们的选择相关的信息并隐藏其他信息。
目前,我根据我在代码中硬编码的 GUID 执行“选择案例”以显示相关信息。有没有更好的方法来做到这一点,而无需在 GUID 中的硬代码后面的代码?
【问题讨论】:
我在数据库中有一个存储4个类别的表,表的结构是ID(GUID),描述。我将类别加载到下拉列表(asp.net webform)中,以允许人们根据他们选择的内容来选择一个类别。然后,我将显示与他们的选择相关的信息并隐藏其他信息。
目前,我根据我在代码中硬编码的 GUID 执行“选择案例”以显示相关信息。有没有更好的方法来做到这一点,而无需在 GUID 中的硬代码后面的代码?
【问题讨论】:
与Guid/Description 关联的数据是什么...
您硬编码的数据听起来像是被添加到数据库本身的候选对象。
如果它是每个Category/Guid 的一条信息,那么请考虑扩展您的数据库表以存储该信息。
如果每个Category/Guid 包含多条信息,则考虑创建一个带有CategoryID 的新表,以及Category 表和ExtraInfo 表之间的外键关系
【讨论】:
您可以在应用启动时查询数据库中的 GUID,并将它们缓存在静态 Dictionary 中。
【讨论】:
您可以将 GUID 存储在您的网络配置中并在运行时加载它。然后,您可以轻松地用另一个 GUID 替换该 GUID,而无需重新编译。
【讨论】:
您应该有一个Categories 表和一个Posts 表(或者您将使用您的类别标记的任何内容)。在Posts 表中,CategoryID 有一列(假设每个帖子只能属于一个类别),因此您只有一个位置的类别名称(标准化您的数据)。
当您呈现下拉列表时,您从数据库中选择 GUID:s。没有硬编码,如果您添加另一个类别(或删除一个类别),下拉列表将自动反映可用类别。
【讨论】:
如果您将下拉列表绑定到类别行或包含类别名称和值的元组,您可以使用SelectedValue 属性在代码隐藏中加载Guid。然后,您将在下拉列表中设置 DataTextField 和 DataValueField。
【讨论】: