2015-08-12 4 views
3

Хорошо, поэтому у меня небольшая проблема, когда я хочу загрузить некоторые базовые пользовательские элементы управления, которые содержат UpdatePanel внутри, на другую страницу, которая является usercontrol.Ошибка UpdatePanel при динамическом добавлении элементов управления пользователя на страницу

установочном:

Всякий раз, когда пользователь нажимает на кнопку всплывающее показывает вверх, содержащий некоторую основную информацию об определенной личности и вкладку, содержащую компании он работал. Количество компаний, для которых он/она работает, может варьироваться от 1 до 4 ~, поэтому я делаю запрос для каждой компании, которую я получаю. Я добавляю представление к мультивизу, этот вид содержит несколько простых пользовательских элементов управления (текстовые поля внутри панели обновления). Теперь всякий раз, когда я иду на страницу, я получаю эту ошибку:

Cannot unregister UpdatePanel with ID 'UpdatePanel2' since it was not registered with the ScriptManager. This might occur if the UpdatePanel was removed from the control tree and later added again, which is not supported. Parameter name: updatePanel

Теперь я знаю, что это общая ошибка, вызванная порождающих UpdatePanels динамически, которые не зарегистрированы в ScriptMaster. Я не могу добавить обработчик события PreInit на страницу, которая добавляет UserControls с помощью UpdatePanels, поскольку это сам UserControl.

Мой вопрос:

Как я могу избавиться от этой неприятной ошибки в не так противно, как, например, а не жесткая подпрограмма, которая добавляет UpdatePanel в scriptmaster.

+0

На вашей странице есть ScriptManager Control на нем? (https://msdn.microsoft.com/en-us/library/bb398863.aspx) – N0Alias

+0

Нет, только на главной странице. – DieVeenman

+0

является сценаристом, добавленным перед всеми панелями обновлений, и перед владельцем содержимого на главной странице? – Thorarins

ответ

1

Вы можете определить функциональность, которую вы хотите добавить в свои пользовательские элементы управления. Я делал то же самое в прошлом, добавляя следующее, внутри моего пользовательского элемента управления.

override protected void OnInit(EventArgs e) { 
// your code here 
} 
+0

Это, кажется, единственный способ сделать это – DieVeenman

0

Добавьте ScriptManager на свой MasterPage перед UpdatePanel. И ваш updatePanel немного запутан, так что может его изменить. :)

+0

В комментариях к моему вопросу я говорю кому-то, что на главной странице уже есть ScriptManager – DieVeenman