我在數據庫MS SQL Server 2012中有疾病表。 disease_id int disease_name varchar(100)。 我想要的是從數據庫中填充checkboxlist。 我的文件的.aspx部分是:從數據庫SQL Server 2012中填充數據源ItemTemplate中的CheckBoxList asp.net C#
<div style="width: 100%; float: left">
<br />
<br />
<asp:DataList ID="DataList1" runat="server" CellPadding="4" ForeColor="#333333" Width="350px">
<AlternatingItemStyle BackColor="White" ForeColor="#284775" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
<ItemTemplate>
<asp:CheckBoxList ID="chkbxlistDiseases" runat="server" RepeatDirection="Vertical" AutoPostBack="true" DataTextField='<%#Eval("disease_name") %>' DataValueField='<%#Eval("disease_name")%>'>
</asp:CheckBoxList>
</ItemTemplate>
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:DataList>
</div>
和我的文件的.cs部分是:
void PopulateDiseases()
{
SqlConnection con = new SqlConnection(str_con);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter("select disease_name from diseases", con);
sda.Fill(dt);
CheckBoxList checklist = DataList1.FindControl("chkbxlistDiseases") as CheckBoxList;
foreach (DataRow dr in dt.Rows)
{
checklist.Items.Add(dr["0"].ToString());
}
}
的錯誤是:
{"Object reference not set to an instance of an object."}
在這行代碼
checklist.Items.Add(dr["0"].ToString());
我沒有使用遞歸的FindControl方法。請你幫我做這個.. –
對不起,我想我誤解了這個問題。你在哪裏調用PopulateDiseases,你怎麼DataBind的DataList1? – schudel