Я бы использовал вложенные главные страницы. Базовый мастер, в котором есть ваша разметка, с дополнительным заполнителем содержимого, где будет находиться менеджер сценариев. Затем две версии вложенного мастера, одна с менеджером скриптов, а другая без. И ваши страницы используют соответствующую вложенную главную страницу.
Я оставляю текст ниже, чтобы комментарии имели смысл, но это не работает ...
Как насчет этого:
-Поместите приложение в свой webconfig со списком URI, которые вы не хотите использовать в диспетчере сценариев.
-В обработчике событий page_init мастера получите эту коллекцию и проверьте, является ли текущий запрос страницы в списке. Если это так, удалите диспетчер сценариев из коллекции элементов управления мастера.
то есть в коде главной страницы позади:
Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
If DirectCast(Page, System.Web.UI.Page).AppRelativeVirtualPath = "~/Test.aspx" Then
Me.Controls.Remove(Me.FindControl("ScriptManager1"))
End If
End Sub
Примечание. В том, что вы делаете, много опасностей. Если на вашей главной странице есть какие-либо панели обновлений или они есть на любой из страниц, на которых вы удаляете менеджер, они вылетят из строя. Вы можете пройти через контрольную коллекцию мастера и страницу в мастере init, а также проверить наличие каких-либо панелей обновления. Хотя я не уверен, что бы вы сделали, если бы нашли их. Их удаление, скорее всего, приведет к удалению любого содержимого в них. В лучшем случае вы можете либо 1) не удалять диспетчер сценариев, если обнаружена панель обновления, или 2) настроить ошибку.
person
Tim Hoolihan
schedule
29.06.2009