我的数据库中有许多表包含对键值对的引用:
电话号码类型:
- 1 - 主页
- 2 - 工作
- 3 - 手机
- 4 - 传真
ETC
所以我有一个类型的表,当它们在其他表中使用时,它们将 int 值作为外键引用。当我将它们拉出来时,我一直将它们作为keyvaluepair<int, string>
项目存储在使用它们的类中。
当我需要获取它们的列表时,我想我只需创建它们的 List<>,而不是使用两种不同类型的数据类型来获取相同的数据。
当我使用edittemplate位时需要在gridview中填充下拉列表时,我的问题就来了。如果我使用数据源将其拉出,它将在文本中写入 [1 Home],而不是将 int 作为值并将 Home 作为要显示的文本。
我想我真的有一个多部分的问题。
一:
我是不是很傻?这是获取数据并存储数据(键值对部分)的一种非常糟糕的方法吗?我应该将其全部存储在数据表中吗?我不喜欢把它全部放在数据表中。我让我的 DAL 接受我的 BLL,并尝试将所有内容封装为对象或List<>
对象的,而不是所有内容的表。大多数情况下,这运作良好。
二:
如果我使用某个对象而不是数据表来绑定到下拉列表的对象数据源,我该如何设置当前选择的值,而不是只选择列表中的第一项?
编辑
正如下面所指出的,我是个白痴,只需要设置 DataValueField 和 DataKeyField。
要绑定下拉列表,我只需要做:
SelectedValue='<%# DataBinder.Eval(Container, "DataItem.PhoneType.Key") %>'
我没有立即看到它的原因是因为它没有出现在我的智能感知中,但是当我手动输入它时,它起作用了。