c# - Databound CheckBoxList 中的第一项未显示

标签 c# asp.net data-binding checkboxlist

假设我有一个名为“Facility”的 SQL 表,如下所示:

|| FacilityID ||          Name        ||
      0             Lecture Theatre
      1             Seminar Room
      2             Computer Lab
      3             Electronics Lab
     ...                ...

并继续为 30 多个不同的房间设施提供服务。我正在尝试将它们数据绑定(bind)到 ASP.NET (C#) 中的 CheckBoxList,如下所示:

<asp:CheckBoxList ID="FacilityCheckList" AutoPostBack="true" runat="server">
    </asp:CheckBoxList>

我用来在 C# 中实现此目的的代码如下所示:

String strSQL;
strSQL = "SELECT * FROM Facility";
SqlCommand cmd3 = new SqlCommand(strSQL, DBConnection);
DBConnection.Open();
SqlDataReader FacilityData;
FacilityData = cmd3.ExecuteReader();
FacilityData.Read();
FacilityCheckList.DataSource = FacilityData;
FacilityCheckList.DataValueField = "Name";
FacilityCheckList.DataBind();
DBConnection.Close();

现在这绝对可以正常工作,除了一件事:它不会为列表中的第一项 Lecture Theatre 显示 CheckBox。列表中的每个其他设施都显示了一个 CheckBox 就好了,但不是 Lecture Theater - 我不知道为什么!

这在 SQL 方面不是问题,因为当我自己运行查询时,它会返回完整列表。而且我不认为它特定于 CheckBoxList,因为当我尝试绑定(bind)到 DropDownList 时,我遇到了同样的问题。我对它为什么这样做感到非常困惑,所以任何见解都将不胜感激!

干杯

最佳答案

删除行:

FacilityData.Read();

这导致读者向前移动了一个档次,使您失去了第一个项目

关于c# - Databound CheckBoxList 中的第一项未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6078752/

相关文章:

c# - 为什么 Visual Studio 监 window 口显示集合中 ValueTuples 的错误值?

c# - ASP.NET MVC 模型到带有附加辅助实体的 View 模型映射

c# - 使用 linq to entities c# 的 gridview_sorting 事件

c# - ASP.NET 中的 ThreadStaticAttribute

apache-flex - 弹性 : does painless programmatic data binding exist?

c# - Observable.Timer 或 TPL with Task.Delay

asp.net - Response.Redirect() 不起作用

c# - 使用 LINQ 比较 C# 中的两个列表并将缺失项添加到实体类的最简单方法

c# - 使用 ItemsSource 时如何设置 TabItem CommandBindings

c# - WPF 中的 DataBinding 有多灵活?