2014-04-12 3 views
1

Итак, у меня есть главная страница и сотни страниц контента. Каждая страница содержания содержит ToolKitScriptManager. Прямо сейчас, я хочу добавить ScriptManager на главную страницу, и когда я пытаюсь выполнить, отображается ошибка "Only one instance of a ScriptManager can be added to the page."Несколько ScriptManager на основных и контентных страницах

Я знаю, что я должен прокомментировать/удалить каждую строку ToolKitScriptManager на каждой странице контента. Но по какой-то причине я не может редактировать сотни страниц контента, чтобы удалить их ToolkitScriptManager.

Что я хочу спросить, есть ли какое-либо решение, поэтому я могу отключить ToolkitScriptManager (на странице контента) программным кодом главной страницы, поэтому мне не нужно редактировать сотни страниц контента?

EDIT:

От вопроса этого ответа в: How to use AJAX in master page when content pages have ScriptManager?, есть 3 способа он может дать. Последний способ невозможен, потому что мне еще нужно редактировать страницы контента. Однако я не понимаю, что он написал о первом и втором путях. Если я должен обернуть Content страница Профиля ToolKitScriptManager с этим:

<asp:ContentPlaceHolder ID="PlaceHolderID" runat="server" >> 
</asp:ContentPlaceHolder> 

затем мастер-страница ScriptManager перекроет Контент страницы Профиля ToolKitScriptManager. Поправьте меня, если я ошибаюсь. И если бы я был прав, первый/второй способ также невозможен, потому что еще нужно редактировать страницы контента, верно?

+0

u знайте, если все администраторы сценариев написаны точно так же, как и в самом деле точно так же, просто выполните поиск и замените их пустым "" – Banana

+0

@Banana, почему код scriptManager в asp можно заменить пустым ??? – noobprogrammer

+0

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

ответ

2

в вашей главной странице, обрабатывать ваш менеджер скриптов на Init и удалить менеджер инструментария сценариев от содержания страницы каждый раз, когда ваш мастера-страница менеджер скрипт загружает:

MasterPage ASPX:

<asp:ScriptManager ID="ScriptManager1" runat="server" OnInit="ScriptManager1_Init"></asp:ScriptManager> 

MasterPage код Позади:

protected void ScriptManager1_Init(object sender, EventArgs e) 
{ 
    try 
    { 
     foreach (Control _ctrl in ContentPlaceHolder1.Controls) 
     { 

      if (_ctrl.GetType() == typeof(AjaxControlToolkit.ToolkitScriptManager)) 
      { 
       ContentPlaceHolder1.Controls.Remove(_ctrl); 
       break; 
      }; 
     } 
    } 
    catch (Exception ex) 
    { 
    } 
} 
+0

, наконец, он работает. Я ценю ваше время и силы, чтобы помочь мне. Спасибо! Да благословит вас Бог такой, как вы. – noobprogrammer

Смежные вопросы