Динамическое создание флажков из массива, а затем перебор их для проверки выбранных

Я создаю список флажков из возвращенной информации из веб-службы. Флажки отображаются, как и ожидалось, но когда я пытаюсь прочитать их, чтобы проверить, были ли они выбраны, код не может их найти.

Я создал панель с именем planList и имел цикл кода, создающий динамический список полей, а затем при нажатии кнопки он должен перебирать список флажков, чтобы увидеть, выбрал ли пользователь какие-либо значения. Код, похоже, не устанавливает никаких флажков, если только он не создан динамически. Кто-нибудь может помочь? На данный момент я просто пытаюсь вытащить идентификатор, если он поднимает флажок

Код:

planList.Controls.Add(new LiteralControl("<h2>Plan List </h2>"));
foreach (string[] ar in ws.planS(this.txtGetDetails.Text)) {
    CheckBox cb =  new CheckBox();
    cb.Text = ar[1].ToString();
    cb.ID = ar[0];                
    planList.Controls.Add(cb);                
    planList.Controls.Add(new LiteralControl("<b>   Application ID: " + ar[2] + "</b>"));                
    planList.Controls.Add(new LiteralControl("<br>"));
}

protected void Uploadbutton_Click1(object sender, System.EventArgs e) {
    foreach (Control c in planList.Controls) {
        CheckBox chx = c as CheckBox;
        if (chx != null) {
            var planid = c.ID;
        }
    }
}

person Carl    schedule 10.02.2014    source источник
comment
Когда вы добавляете флажки?   -  person Andrei    schedule 10.02.2014
comment
Я отредактировал ваш заголовок. См. Должны ли вопросы включать «теги» в свои заголовки?, если нет единого мнения, не следует.   -  person John Saunders    schedule 10.02.2014


Ответы (1)


Вы должны переопределить метод CreateChildControls и добавить туда флажки. При этом вы создаете дерево элементов управления перед загрузкой ViewState, которое содержит данные о том, какой из них был проверен.

person Ivo    schedule 10.02.2014
comment
спасибо, я добавлял их после загрузки страницы - добавил их в загрузку страницы и теперь могу их прочитать. - person Carl; 10.02.2014