Вопрос

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

Например, я разрабатываю элементы управления, которые зависят от jQuery. Поскольку я разрабатываю элементы управления Extender, мне придется реализовать этот метод из интерфейса, как ниже, обратите внимание на сценарий 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 в другом управлении, так что это означает, что они дважды обслуживаются, если оба элемента управления находятся на одной странице? Также еще один вопрос,

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

Некоторые характеристики:

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

.NET 2.0, ASP.NET 2.0

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

Это было полезно?

Решение

Я считаю, что фреймворк ASP.NET правильно обрабатывает дубликат ScriptReference Объекты в процессе рендеринга, поскольку элементы управления 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;
}

Это должно позволить вам обслуживать либо отладку, либо версии (мини -мини -мини -низированные) ваши файлы JavaScript в зависимости от того, что в режимах отладки или выпуска.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top