Как определить элементы управления из кода при переключении режимов в FormView? Похоже, вы не можете использовать FindControl во время события Page_Load, так как он будет искать элементы управления в ранее показанном шаблоне, а не только что выбранном. Я подозреваю, что вы не можете полагаться только на страницу PageLoad, но вам нужно найти элементы управления в другом событии, например OnDataBound, но должны ли вы действительно это сделать? Я видел несколько formviews в мой день, что отсутствие таких событий, как OnDataBound ...FindControl ищет элементы управления в некорректном шаблоне FormView
Более подробную информацию о моем конкретном случае: У меня FormView где и ItemTemplate, InsertItemTemplate и EditItemTemplate содержат один и тот же текстовое поле , (у него одинаковый идентификатор во всех шаблонах)
Во время события Page_Load я использую FindControl для поиска текстового поля и изменения его видимости. Прекрасно работает при первоначальной загрузке формы, но по какой-то причине она не работает, когда форма меняет режимы/меняет шаблоны (после отображения страницы вы видите, что видимость текстового поля неверна)
Например, переключение от режима чтения до редактирования - formview.Mode будет установлен в FormViewMode.Edit, но при использовании FindControl во время события PageLoad он будет искать элементы управления в ItemTemplate, а не в EditItemTemplate. Таким образом, если у вас есть элемент управления с тем же идентификатором во всех шаблонах, он найдет элемент управления в некорректном шаблоне, а после загрузки страницы вы будете очень смущены тем, почему элемент управления, который загружен, не имеет того же свойства, как вы думали, когда вы исследовали его в отладчике во время pageLoad.