使用 ASP.NET 的 DropDownList 中的错误

Posted

技术标签:

【中文标题】使用 ASP.NET 的 DropDownList 中的错误【英文标题】:Error in DropDownList using ASP.NET 【发布时间】:2010-05-27 13:13:17 【问题描述】:

我在 ASP.net 页面中有一个名为 (DDL) 的 DropDownList,我希望 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

【问题讨论】:

【参考方案1】:

你应该设置DataTextField和DataValueField,否则数据绑定会在每一行上执行.ToString()并把它作为item:

DDL.DataSource = myDataReader;
DDL.DataTextField = "[Text column name]";
DDL.DataValueField = "[Value column name]";
DDL.DataBind();

【讨论】:

【参考方案2】:

你必须在数据绑定之前设置 ddl 的文本和关键字段

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

【讨论】:

【参考方案3】:

代码:ddl.datasource=reader 只是将阅读器中存在的内容(表的列数组)设置为主要数据源。现在ddl 仅显示其中的一列,因此您需要写一段代码告诉ddl它必须显示哪一列。所以你会写:ddl.textfield="你想显示的列名"; 和 ddl.valuefield="column 名称,您希望将其作为参考传递给数据库”;

【讨论】:

仅供参考,您正在回答一个有一年历史的问题,并且您的答案与已接受的答案重复。 :)

以上是关于使用 ASP.NET 的 DropDownList 中的错误的主要内容,如果未能解决你的问题,请参考以下文章

asp.net的DropDownlist绑定数据

用ASP.NET怎样动态给dropdownlist控件赋值

ASP.NET MVC 使用视图中的值填充 DropDownList

用于下拉显示数据的 asp.net dropdownlist mouseover 事件

如何给DropDownList控件设置样式(ASP.NET MVC)

Asp .net dropdownlist SelectedItem 在下拉列表中清除后不会更改