ошибка при создании списка чеков - PullRequest
0 голосов
/ 19 марта 2012
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 в контрольном списке, но я получаю сообщение об ошибке, что у меня нет проверки контрольного списка, несмотря на то, что я его создаю. У вас есть идея, почему мой контрольный список не распознается?Я использую c # в приложении asp.net.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

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

foreach (ListItem item in check.Items)

Причины:

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

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

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

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

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

Теперь вы можете циклически проходить через коллекцию Предметов из списка флажков

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...