Это немного ... странно. По сути, у меня есть форма, которую я создаю с использованием динамических данных ASP.NET, которая будет использовать несколько пользовательских шаблонов полей.
Я только что добавил другое поле в FormView с его собственным настраиваемым шаблоном, и форма загружает этот элемент управления дважды без видимой причины. Хуже того, при первой загрузке шаблона строка еще не готова, и я получаю сообщение об ошибке:
Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте элемента управления с привязкой к данным
Я получаю доступ к переменной Row в событии LinqDataSource OnSelected, чтобы получить дочерний объект ...
Теперь о странной части: если я немного переупорядочу поля, то поле, вызывающее проблему, больше не загружается дважды.
Есть мысли?
EDIT: я заметил, что Page_Load вызывается при первой загрузке (когда Row выдает исключение, если вы пытаетесь его использовать), но НЕ вызывается во второй раз. Если это поможет любому ...
Прямо сейчас, управляя им, просто перехватывая и игнорируя исключение, но все же немного беспокоюсь, что все сломается, если я не найду истинную причину.
РЕДАКТИРОВАТЬ 2: Я проследил проблему рекурсивного использования FindControl для поиска других элементов управления на странице. Очевидно, FindControl может вызывать события жизненного цикла страницы (по крайней мере, до page_load) ... и это происходит до того, как эта страница "должна" загрузиться, так что ее "динамические данные" еще не готовы.