Я новичок, и у меня возникла проблема с ASP: кнопки управления.
На странице около 60 кнопок, типичный XAML выглядит следующим образом:
<asp:Button class="tile" ID="Button1" runat="server" Text="Domains"/>
Мне нужно перебрать все кнопки на странице, чтобы изменить свойства, и я нехочу сделать это один за другим.
Я нашел много предложений здесь и там, но ничего не работает.Мой код:
for (int i = 1; i < 59; i++)
{
String butt = String.Format("Button{0}", i);
var btn = FindControl(butt);
btn.Visible = false;
}
Ошибка в том, что нет ссылки на объект.БТН является нулевым.Я попытался проверить элемент в работающем приложении, и он говорит, что идентификатор элемента "MainContent_Button1" - попытался это тоже не работает.Другая вещь, которую я попробовал, это
foreach(var button in this.Controls.OfType<Button>())
{
button.Visible = false;
}
Я пришел к выводу, что asp: button это a) не элемент управления типа кнопки b) его идентификатор каким-то образом генерируется при запуске приложения, и поэтому нет никакого контроля сid Button1 будет найдено.
Может кто-нибудь объяснить мне это?Мне бы очень хотелось понять, почему он так себя ведет и какова цель этого поведения.
Спасибо
Редактировать: Я даже пытался полностью удалить цикл и изменить одну конкретную кнопку, используя метод FindControl.Тоже не работает.
var btn = FindControl("Button1");
btn.Visible = false;
result: System.NullReferenceException: 'Ссылка на объект не установлена для экземпляра объекта.'