SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["erp"].ConnectionString);
con.Open();
string intero = "Select * from judete";
SqlCommand cmd = new SqlCommand(intero, con);
SqlDataReader rdr;
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
CheckBoxList check = new CheckBoxList();
check.Visible = true;
check.Items.Add(new ListItem(rdr[1].ToString()));
Panel1.Controls.Add(check);
foreach (ListItem item in this.check)
{
}
我想在复选框列表中做一个foreach但是我得到一个错误,我没有复选框列表检查,尽管我正在创建它。你知道为什么我的复选框列表检查无法识别吗?我在asp.net应用程序中使用c#。
答案 0 :(得分:2)
在this.
循环中移除check
之前的foreach
,然后在其后添加.Items
:
foreach (ListItem item in check.Items)
原因:
check
是一个局部变量,而不是成员变量。Items
。{/ li>的CheckBoxList
答案 1 :(得分:0)
由于您从代码中添加了CheckBoxList,因此您无法从this
获取项目。因此,使用FindControl方法获取Item。在创建
CheckBoxList check = new CheckBoxList();
check.ID="myCheck";
你可以得到这样的项目
CheckBoxList myCheck=(CheckBoxList) Panel1.FindControl("myCheck");
您现在可以像这样循环通过Checkbox列表的Items集合
foreach (ListItem item in myCheck.Items)
{
item.Text = rdr.GetString(2); //or whatever with GetOrdinal
}
您确定要在While循环内创建一个Checkbox列表的实例,或者您只想创建一个该实例(在while之外)并将表中的项添加到while内的Checkbox列表中循环?