Я пытаюсь программно добавить элемент управления ScriptManager, но только в том случае, если его нет на странице. Я нашел много примеров для этого, которые помещают логику внутри Page_Init, что имеет смысл (с тех пор я понял, что это не имеет смысла — см. нижнее редактирование), но я получаю исключение перед моим Метод Init всегда срабатывает.
protected void Page_Init(object sender, EventArgs e)
{
if (ScriptManager.GetCurrent(Page) == null)
{
ScriptManager sMgr = new ScriptManager();
Page.Form.Controls.AddAt(0, sMgr);
}
}
Это заставляет меня думать, что Sitecore каким-то образом мешает. Кто-нибудь успешно сделал это с помощью Sitecore?
Спасибо.
EDIT: Исключение, которое я получаю, выглядит следующим образом: «Элементу управления с идентификатором 'filtersUpdatePanel' требуется ScriptManager на странице. ScriptManager должен отображаться перед любыми элементами управления, которым он нужен».
EDIT^2: На самом деле здесь происходило то, что Page_Init слишком поздно в жизненном цикле для присоединения ScriptManager (в моем случае). При использовании Init сначала запускаются все дочерние события, а затем Page. Инициализация UpdatePanel не увидела ScriptManager, поэтому выдала исключение. Помещение логики ScriptManager в инициализацию UpdatePanel решило проблему.