Итерация по коллекции ControlCollection из CreateUserWizardStep - PullRequest
0 голосов
/ 12 мая 2009

Я пытаюсь перебрать ControlCollection в событии CreatedUser моего CreateUserWizardStep. У меня есть ContentTemplate, который содержит таблицу, полную флажков, которые я использую, чтобы собрать доступность пользователя в течение недели. Ради краткости я вставлю свой код в pastebin.

Здесь - ссылка на страницу .aspx. Здесь - событие CreatedUser.

Этот цикл:

foreach (Control c in CreateUserWizardStep1.ContentTemplateContainer.Controls)
    {
        if (c.GetType() == typeof(CheckBox))
        {
        }
    }

Дает мне WizardDefaultInnerTable вместо ... ну, с чем-то проще работать.

Как мне найти флажки внутри этой второй таблицы? То, что я хочу сделать, это найти свойство selected и с этим построить строки, которые я могу поместить в свою базу данных. Любое руководство приветствуется.

Спасибо!

1 Ответ

2 голосов
/ 12 мая 2009

Вы должны были бы рекурсивно пройти контроль. Но вы также можете просто ссылаться на них через идентификаторы, которые вы установили.

Рекурсивное решение будет выглядеть примерно так:

IEnumerable<T> FindControls<T>(Control parent) where T : Control {
   T t = parent as T;
   if (t != null) yield return t;

   foreach (Control c in parent.Controls) {
      foreach (var c2 in FindControls<T>(c)) yield return c2;
   }
}
...