Я не думаю, что DropDownList поддерживает DataTextFormatString
s, которые объединяют строку так, как вы хотите это сделать. Насколько я знаю, вы можете использовать только строки формата для чисел и дат. (Примеры см. Здесь: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.datatextformatstring.aspx)
Вы можете сделать это так, как предлагает ChristiaanV (анонимный тип), или использовать свой собственный POCO class
(класс, содержащий только свойства).
Помните, что использование анонимных типов ограничено. Вы не можете использовать их в BusinessLayer-Assembly, и GUI-Assembly может использовать результат, потому что возможность возврата анонимного типа из метода очень ограничена.
Я бы посоветовал вам сделать что-то вроде этого:
public class MyPOCO
{
public int MyPrimaryKey {get;set;}
public String DisplayString {get;set;}
}
Создайте List<MyPOCO>
в своем коде и привяжите его к свойству DataSource
.
Установите DataValueField
для MyPrimaryKey и DataTextField
для DisplayString
Если у вас возникли проблемы с привязкой данных на обратных передач , вы можете сделать следующее:
- Создать метод, который возвращает
List<MyPOCO>
- Создайте ObjectDataSource и используйте мастер для выбора методов, которые вы создали в 1.
- Назначьте идентификатор ObjectDataSource для
DataSourceID
из DropDownList.