Ошибка в DropDownList при использовании ASP.NET - PullRequest
1 голос
/ 27 мая 2010

У меня есть DropDownList, называемый (DDL) на странице ASP.net, я хочу, чтобы DDL содержал некоторые записи таблицы в базе данных.

Итак, я сделал это:

DDL.DataSource = myDataReader

DDL.DataBind()

Но это дает мне (5 записей) "количество записей в таблице", но вот так:

System.Data.Common.DataRecordInternel
System.Data.Common.DataRecordInternel
System.Data.Common.DataRecordInternel
System.Data.Common.DataRecordInternel
System.Data.Common.DataRecordInternel

Ответы [ 3 ]

4 голосов
/ 27 мая 2010

Вы должны установить DataTextField и DataValueField, в противном случае привязка данных будет выполнять .ToString () для каждой строки и поместить ее как элемент:

DDL.DataSource = myDataReader;
DDL.DataTextField = "[Text column name]";
DDL.DataValueField = "[Value column name]";
DDL.DataBind();
0 голосов
/ 02 марта 2011

Код: ddl.datasource=reader просто устанавливает содержимое, присутствующее в считывателе (массив столбцов таблицы), в качестве основного источника данных.
Теперь, когда ddl показывает только один столбец, вам нужно напишите фрагмент кода, который сообщает ddl, какой столбец он должен отображать.
Итак, вы напишите: ddl.textfield= "имя столбца, который вы хотите показать"; и ddl.valuefield=" имя столбца, который вы хотите использовать в качестве ссылки для передачи в базу данных ";

0 голосов
/ 27 мая 2010

Вы должны установить текст и ключевые поля ddl перед тем, как связать данные

DDL.DataTextField = "textColumn";
DDL.DataValueField = "textColumn":
...