簡體   English   中英

數據綁定CheckBoxList中的第一項未顯示

[英]First item in Databound CheckBoxList not showing up

假設我有一個名為“ Facility”的SQL表,看起來像這樣:

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

並繼續適用於30多種不同的房間設施。 我正在嘗試將這些數據綁定到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();

現在,除了一件事情外,它絕對可以正常工作:它不會為列表中的第一個項目“演講廳”顯示一個CheckBox。 列表中的其他所有設施都可以使用CheckBox出現,但Lecture Theater卻不行-我也不知道為什么!

當我自己運行查詢時,在SQL端cos上這不是問題,它返回完整列表。 而且我不認為它特定於CheckBoxList,因為當我嘗試綁定到DropDownList時,遇到了同樣的問題。 我很困惑為什么要這樣做,所以任何見解將不勝感激!

干杯

刪除行:

FacilityData.Read();

這導致讀者前進一個檔次,使您丟失第一項

不要在SqlReader上調用Read() 只需在調用ExecuteReader()之后將其分配為CheckBoxList的數據源即可。 當您將其設置為數據源時,它將通過調用Read()開始,因此在您的情況下,第一條記錄將被跳過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM