Я определил таблицу html не с asp-тегами один на моей странице *.aspx
. Затем я добавил некоторые элементы управления asp в эту таблицу в своих строках как: <asp:CheckBox>
.Не могу перечислить элементы управления в CodeBehind
Я определил много флажков, потому что мне нужно предоставить пользователю большое количество выборов, и я не могу свести к минимуму количество флажков.
В CodeBehind
Я хотел перечислить все элементы управления, чтобы найти, что мне нужно, GetType().Name
, а затем добавить во временный список для будущих действий.
Но у меня проблемы, в отладчике я не вижу никаких флажков, а количество элементов управления очень мало.
Я перечисляя элементы управления страницы, как это:
foreach (var item in Page.Controls)
{
if (item.GetType().Name == "CheckBox")
{
CheckBox checkBox = item as CheckBox;
if (checkBox.ID != null && checkBox.ID != String.Empty && checkBox.Checked)
{
arrayDocs.Add(checkBox.ID);
}
}
}
Полный код моей страницы:
ASPX: http://pastebin.com/gUs2LchL
код позади: http://pastebin.com/5tfnKJSt
Если вы хотите перечислить элементы _all_ на странице, вам нужно сделать это рекурсивно. – Magnus
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
@ Магнус рекурсивно? 23, рекурсия имеет повторяющиеся шаги, попытайтесь представить, как она может быть медленной? даже если вы используете tail-recursion, я полагаю, что любой элемент управления на asp-странице находится в некотором Control-Container, который вы можете перечислить с помощью блока foreach(). Основной вопрос в этом разделе заключается в том, что я не могу ссылаться на контейнер, который содержит все флажки для их перечисления, а также не может быть загружен из основного 'Page.Controls' или' this.Controls', что скорее Штанга. Я полагаю, что эти флажки находятся в режиме управления на стороне сервера, но я пытался получить элементы - нет успеха, тот же результат – Secret