2012-03-19 3 views
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) 
    { 

    } 

Я хочу сделать Еогеасп в CheckBoxList, но я получаю сообщение об ошибке, что я не имею чек CheckBoxList несмотря на то что я создаю it.Do у вас есть какие-либо идеи, почему мой чек CheckBoxList не признано? Я использую C# в приложении asp.net.Ошибка при создании CheckBoxList

ответ

2

Удалите this. перед тем check в цикле foreach и добавьте .Items после него:

foreach (ListItem item in check.Items) 

Причины:

  • check является локальной переменной, а не переменной-члена.
  • Вы хотите перечислить Items из CheckBoxList.
+0

, тогда я получаю, что foreach не может работать с переменными типа SYStem .. – Bibu

+0

@Bibu: см. Обновленный ответ. –

+0

Да, я сделал это перед публикацией. Это работает.thanks – Bibu

0

Поскольку вы добавили CheckBoxList из кода, вы не получите предметы от this. Поэтому используйте метод FindControl для получения элемента. Вы должны давать идентификатор для элемента управления при создании, что

CheckBoxList check = new CheckBoxList(); 
check.ID="myCheck"; 

Вы можете получить деталь, как этого

CheckBoxList myCheck=(CheckBoxList) Panel1.FindControl("myCheck"); 

Вы можете цикл через коллекцию Items списка Checkbox, как это сейчас

foreach (ListItem item in myCheck.Items) 
{ 
    item.Text = rdr.GetString(2); //or whatever with GetOrdinal 
} 

Вы действительно хотите создать экземпляр списка флажков внутри цикла While или просто хотите создать только один экземпляр этого (вне времени) и добавить элементы из таблицы в список флажков внутри цикла while?

+0

моя цель, когда я проверяю флажок, некоторые данные из другой таблицы появляются. Так что если у меня есть США и проверьте это, тогда появятся города из США, и если я проверю города Германии из Германии и скоро.. – Bibu

Смежные вопросы