У меня есть несколько таблиц в моей БД, которые содержат ссылки на ключевую пару значений:GridView связывает DropDownList к списку <KeyValuePair <int, string>>
типов телефонных номеров:
- 1 - Главная
- 2 - Работа
- 3 - Мобильный
- 4 - Факс
etc
Итак, у меня есть таблица типов, и когда они используются в других таблицах, они ссылаются на значение int в качестве внешнего ключа. Когда я их вытаскиваю, я храню их как keyvaluepair<int, string>
элементов в классе, который их использует.
Когда мне нужно было составить список из них, я думал, что просто создам для них список <> вместо того, чтобы использовать два разных типа данных для получения одинаковых данных.
Моя проблема возникла, когда мне нужно заполнить выпадающий список в gridview, когда я использую бит edittemplate. Если я использую источник данных, чтобы вытащить это, он напишет [1 Главная] в тексте, а не поместит int как значение, а Home - как текст для отображения.
У меня есть вопрос с несколькими частями.
1:
Я являюсь глупым? Это действительно плохой способ получить данные и сохранить их (часть keyvaluepair)? Должен ли я просто хранить все это в виде данных? Мне не нравилось все это записывать в формате datatable. У меня есть DAL для моего BLL и пытались инкапсулировать все как объекты или объекты List<>
, а не таблицы всего. В большинстве случаев это сработало хорошо.
Два:
Если бы я использовал какой-то предмет, а не DataTable связывать в моем ObjectDataSource для DropDownList, как я могу установить выбранное значение, а не у него просто есть первый элемент в списке выбран?
EDIT
Как было указано ниже я был идиотом и просто необходимо установить DataValueField и DataKeyField.
Чтобы получить DropDownList связать я просто должен был сделать:
SelectedValue='<%# DataBinder.Eval(Container, "DataItem.PhoneType.Key") %>'
причина, почему я не видел, что один сразу потому, что он не появляется в моем IntelliSense, но когда я вручную ввели его в, это сработало.
Dayam - Я думал, что у меня был * легко * 30 очков или около того, но вы бьете меня к нему. Хорошая работа и хороший ответ! –
Благодарю вас .. это связало это блестяще .. он работал со списком <> из них. Но я думаю, в некоторых отношениях, что словарь в любом случае ... – Jon
Я забыл установить DataValueField и DataTextField .. Причинение моего значения и отображения Текст выпадающего списка тот же. БЛАГОДАРЯ! –