Я делаю некоторые манипуляции с базой данных с .NET, используя detailView дочернего элемента со скрытым полем в режиме вставки, чтобы сохранить идентификатор родителя. Он населен как:Потеря контроля на changeMode?
dvChild.ChangeMode(DetailsViewMode.Insert);
HiddenField hdParentId = (HiddenField) FindControlRecursive(Page, "hdParentId");
hdParentId.Value = parent.ParentId;
Это прекрасно работает изначально - пользователь ищет родитель, поиск возвращает родительский идентификатор, редактор ребенка перевернулся в режиме вставки. При обратной передаче я звоню
dvChild.ChangeMode(DetailsViewMode.ReadOnly);
использовать dvChild для эхо оригинальной вставки.
Но когда пользователь выполняет поиск с обратной страницы, попытка найти hdParentId просто возвращает нуль, даже если сам элемент управления отображается, когда страница отображается. Что происходит?
FindControlRecursive - популярный хак, который прокручивается через вложенные элементы управления. dvChild.FindControl ("hdParentId"), как ожидается, тоже будет пустым.