创建复选框列表时出错

时间:2012-03-19 13:25:22

标签: asp.net c#-4.0

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#。

2 个答案:

答案 0 :(得分:2)

this.循环中移除check之前的foreach,然后在其后添加.Items

foreach (ListItem item in check.Items)

原因:

  • check是一个局部变量,而不是成员变量。
  • 您想要枚举Items。{/ li>的CheckBoxList

答案 1 :(得分:0)

由于您从代码中添加了CheckBoxList,因此您无法从this获取项目。因此,使用FindControl方法获取Item。在创建

时,您应该为控件提供ID
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列表中循环?

相关问题