asp.net перебирает элементы управления в форме - PullRequest
0 голосов
/ 15 ноября 2011

Я пытаюсь перебрать список элементов управления, чтобы определить, какие флажки отмечены или нет на веб-странице ASP.NET.Если этот флажок установлен, то его текст должен быть добавлен в список;возвращаемая итерация возвращает ошибку или не найдены элементы управления типа Checkbox (в пределах контейнера AJAX имеется 10 флажков).Вот копия моего кода.

private void populateServiceList()
    {
        foreach (CheckBox checkbox in this.Form1.Controls.OfType<CheckBox>())
        {

        if (checkbox.Checked == true)
        {
            this.services.Add(checkbox.Text);
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 15 ноября 2011

Рассмотрите возможность обновления элемента управления на вкладке AJAX, чтобы вместо него использовать CheckboxList .

Если это действительно не вариант, измените this.Form1.Controls, чтобы использовать коллекцию элементов управления из прямого родительского элемента управления для своих флажков вместо всей формы.

0 голосов
/ 15 ноября 2011

РЕДАКТИРОВАТЬ @ 6:07 CST:

Используйте это внутри метода populateServiceList ():

        List<String> temp = new List<string>();

        foreach (Control ctrl in TabContainer1.Controls)
        {
            if (ctrl.HasControls())
            {
                foreach (Control subctrl in ctrl.Controls)
                {
                    CheckBox TControl = subctrl as CheckBox; 
                    if (TControl != null && TControl.Checked) 
                    {
                        temp.Add(TControl.Text);
                    }                         
                }
            }
        }

enter image description here

0 голосов
/ 15 ноября 2011

у вас, вероятно, флажок не в корне сканирования формы.

Обычно мы используем - рекурсивные функции для сканирования всех элементов внутри контейнера.

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