При добавлении нескольких пользовательских веб-элементов управления возникает ошибка, на страницу можно добавить только один экземпляр ScriptManager.

Я создал пользовательский элемент управления «Календарь» расширителя даты ajax вместе с текстовым полем для ввода даты. Теперь я пытаюсь создать этот элемент управления динамически для всех строк, заполняющих мою таблицу. Выдает следующую ошибку: - На страницу можно добавить только один экземпляр ScriptManager.

вот код: -

tc = new TableCell();
            tc.Style["width"] = "15%";
            Calendar1 = (ASP.Calendar)LoadControl("../Calendar.ascx");
            Calendar1.ID = "tbDate" + Convert.ToString(_id);
            tc.Controls.Add(Calendar1);
            tr.Cells.Add(tc);
            tc.Dispose();
            tc = null;

И я объявил глобальную переменную: public ASP.Calendar Calendar1;

Заранее спасибо за ваши предложения.


person alkesh deshpande    schedule 16.07.2012    source источник
comment
удалить из calendar.ascx лишний ScriptManager   -  person Aristos    schedule 16.07.2012
comment
Покажите примеры кода вашего календаря   -  person Johnny_D    schedule 16.07.2012


Ответы (2)


Вам нужно использовать компонент ScriptManagerProxy внутри вашего веб-пользователя вместо полноценного ScriptManager. ScriptManagerProxy был создан именно для такого использования, которое вам нужно.

«Позволяет вложенным компонентам, таким как страницы содержимого и пользовательские элементы управления, добавлять ссылки на сценарии и службы на страницы, когда элемент управления ScriptManager уже определен в родительском элементе». - http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

Поэтому в основном убедитесь, что вы используете ScriptManager на самой вызывающей странице и используете компонент ScriptManagerProxy внутри пользовательского веб-элемента управления Calendar.ascx.

Если ваш дизайн не позволяет этого, как насчет создания второй версии Calendar.ascx только для использования в качестве вложенного элемента управления?

person Johanvw    schedule 16.07.2012

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

person Ashwin Singh    schedule 16.07.2012