Используя JQuery, поскольку ASP.NET встроил webresource

Не смешивайте это использование attr() и data(). data() кэширует значение, которое он читает из элемента, и не обновляет атрибут. Так что, если вы обновите данные, attr не увидит их. Выберите одно или другое и придерживайтесь его.

9
задан Chris S 8 January 2009 в 12:53
поделиться

2 ответа

Обновление:

Намного более легкий способ сделать его состоит в том, чтобы просто добавить тег script динамично, в Вашем сценарии и указать на хостинг кода Google. например.

function include_dom(script_filename) {
    var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

include_dom("http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js");

Функция взята от этой статьи


Crecentfresh продвинул меня в правильном направлении, я также нашел

http://en.csharp-online.net/Creating_Custom_ASP.NET_AJAX_Client_Controls — IScriptControl. GetScriptReferences_Method.

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

1
ответ дан 4 December 2019 в 22:30
поделиться

Если Вы хотите упаковать jQuery, и встроить его в Вашем собственном управлении сервером необходимо служить ему клиенту, использующему ScriptManager. От вершины моей головы Вы имеете к:

  1. добавьте jQuery.js к своему проекту
  2. под его "Свойством" Действия Сборки сделайте это Встроенным Ресурсом
  3. в AssemblyInfo.cs для Вашего управления добавляют

    [assembly: WebResource("<Your Server Control namespace>.jQuery.js", "application/x-javascript")]
    
  4. Заставьте свое управление наследоваться Системе. Сеть. UI.ScriptControl (или по крайней мере реализуют IScriptControl),

  5. Переопределение GetScriptReferences:

    protected override IEnumerable<ScriptReference>
    GetScriptReferences()
    {
    return new ScriptReference[] { 
        new ScriptReference("<Your Server Control namespace>.jQuery.js", this.GetType().Assembly.FullName),
    };
    }
    

Весь Ваш собственный клиентский сценарий должен быть установкой внутри:

protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()

Который затем гарантирует правильный порядок зависимостей (т.е. jQuery будет доступен Вашему собственному клиентскому сценарию).

7
ответ дан 4 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: