Частичный рендеринг Dotnetnuke заставляет мой виджет jQueryUI перестать работать

#jquery-ui #dotnetnuke #jquery-ui-tabs #renderpartial

#jquery-ui #dotnetnuke #jquery-ui-tabs #renderpartial

Вопрос:

Я хочу использовать виджет вкладки jQueryUI в dotnetnuke 5.6.3. Я зарегистрировал jQueryUI в своем модуле, и он работает нормально, но когда я использую частичный рендеринг на своей странице, он не загружается.

Вот мой код:

 $(document).ready(function () {
    rastaAdmin();
});
function rastaAdmin() {
var tabdiv = $('#tabul');
var tabvar = tabdiv.tabs();
}
 

на этом сайте есть способ решить мою проблему, но он не работает в моем скрипте.

После прочтения вышеупомянутого сайта я изменил свой код на:

 $(document).ready(function () {
    rastaAdmin();
});
function pageLoad(sender, args) {
    rastaAdmin();
}
function rastaAdmin() {
var tabdiv = $('#tabul');
var tabvar = tabdiv.tabs();
}
 

У меня это не работает.

Что я могу сделать?

Спасибо

Ответ №1:

У меня также были проблемы с использованием этой pageLoad функции (хотя сейчас я не помню, где она в итоге сломалась). Однако что-то вроде другого метода должно работать нормально (см. Новую Настройку пользовательского интерфейса jQuery в основных модулях в DNN 6):

 $(document).ready(function () {
    setupDnnSiteSettings();
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
        setupDnnSiteSettings();
    });
});
 

Единственное предостережение здесь заключается в том, что это регистрирует код настройки, который будет выполняться после возврата из любого UpdatePanel инициированного запроса, а не только вашего конкретного UpdatePanel . tabs Повторный вызов одного и того же элемента не должен вызывать никаких проблем, но вы захотите найти способ отличить, если вы делаете что-то, что должно вызываться только один раз.

Ответ №2:

Спасибо,
друзья, после вашей помощи я изменил свой код на:

 $(document).ready(function () {
Sys.Application.add_load(function (s, e) { rastaAdmin(); });
rastaAdmin();
});
function rastaAdmin() {
var tabdiv = $('#tabul');
var tabvar = tabdiv.tabs();
}
 

И для меня это работает как шарм! Спасибо, приятель.