2

Поддерживает ли база управления Ajax Extender управление зависимостями? Я создаю набор элементов управления, который использует несколько базовых скриптов, используемых поведением, и отсюда Creating a Extender Control это выглядит как внешний вид. Мне нужно будет включить базовый скрипт в каждый управляющий код. Так же база расширений обслуживает один и тот же сценарий [кэшированный] для каждого элемента управления или того же сценария для каждого элемента управления.Как управлять зависимостью javascript для элементов управления Ajax Extender

Например, я разрабатываю элементы управления, которые зависят от jQuery. Поскольку я разрабатываю элементы управления расширителями, мне придется реализовать этот метод из интерфейса, как показано ниже, обратите внимание на скрипт jquery!

protected override IEnumerable<ScriptReference> GetScriptReferences() 
{ 
    ScriptReference reference = new ScriptReference(); 
    reference.Path = ResolveClientUrl("jQuery.js"); 
    reference.Path = ResolveClientUrl("FocusBehavior.js"); 
    return new ScriptReference[] { reference }; 
} 

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

Как сделать вывод управления расширителем производственных сценарии вместо отлаживать скрипты Кроме того, регистрирующий скрипт с ScriptManager не вариант для меня, как я использую MasterPage, который не нужен менеджер сценария.

Некоторые функции:

Разработано в VS2005

.NET 2.0, ASP.NET 2.0

Script Зависимость от Шипение, emile.js, spine.js эти базовые сценарии, необходимые для все элементы управления

ответ

0

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

Например, на странице ASP.NET вы можете сделать:

<act:Calendar runat="server" ID="calendar1"/> 
<act:Calendar runat="server" ID="calendar2"/> 

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

В вашей ситуации, вы, вероятно, хотите сделать что-то вроде:

protected override IEnumerable<ScriptReference> GetScriptReferences() 
{ 
    List<ScriptReference> references = new List<ScriptReference>(); 

    #if DEBUG 
    // Load Debug Version 
    references.Add(new ScriptReference(ResolveClientUrl("~/Path_To_Your_Debug_JS.js"));  
    #else 
    // Load Minified Version 
    references.Add(new ScriptReference(ResolveClientUrl("~/Path_To_Your_Release_JS.js")); 
    #endif 

    return references; 
} 

Это должно позволить вам служить либо Debug или Release (уменьшенная) версии файлов Javascript в зависимости от того, в любом Debug или Режимы выпуска.

Я не уверен в ваших комментариях о вашей MasterPage, не нуждающейся в ScriptManager. Я предполагаю, что у вас есть какой-то механизм, который занимается обработкой обязанностей ScriptManager, как вызов метода GetScriptReferences() на ваших элементах управления и обработка рендеринга этих тегов сценария.