DNN 6 jQuery Tabs - PullRequest
       4

DNN 6 jQuery Tabs

2 голосов
/ 26 января 2012

Я пытался с несколькими половинками сбоев получить версию DNN 6 вкладок jQuery (называемых DNNTabs) для работы внутри пользовательской страницы «Изменить» модулей (которая открывается в модальном режиме, аналогично модулю «Настройки»). Я хочу использовать ту же тему по умолчанию / CSS для вкладок и кнопок (она должна вести себя почти так же, как Настройки).

Вот то, что кажется началом некоторой документации, но она не очень полная.

http://www.dotnetnuke.com/Resources/Wiki/Page/dnnTabs-jQuery-Plugin.aspx

Я просканировал сети для примера для подражания, но в большинстве всех примеров используются оригинальные вкладки jQuery и / или их модификация для "работы" с DNN.

http://jqueryui.com/demos/tabs/

Начало моего кода, который не работает.

<script type="text/javascript">
    $('#tabs').dnnTabs();
</script>
<div id="tabs" class="dnnForm dnnModuleSettings dnnClear">
    <ul class="dnnAdminTabNav dnnClear">
        <li><a href="#tab1">Tab 1</a></li>
        <li><a href="#tab2">Tab 2</a></li>
    </ul>
    <div id="tab1">
        Some content...
    </div>
    <div id="tab2">
        Some content...
    </div>        
</div>

Где-то еще, что я прочитал, я должен запросить регистрацию плагинов DNN в моем OnInit следующим образом:

protected void OnInit(object sender, System.EventArgs e)
{
    DotNetNuke.Framework.jQuery.RequestDnnPluginsRegistration();
}

Мне не хватает другой ссылки, строки кода, чего-нибудь? 1) все вкладки отображаются при загрузке и 2) щелчок по вкладке просто прокручивает до идентификатора местоположения в модальном режиме (который не может быть прокручен вверх до после)

1 Ответ

3 голосов
/ 26 января 2012

Я думаю, что выглядит завершенным; Единственная проблема, которую я вижу, это то, что вы инициализируете плагин до того, как определили вкладки. То есть первое, что вы делаете, - это извлекаете элемент с идентификаторами и настраиваете для него плагин, но этот элемент еще не существует. Переместите ваш скрипт внизу вашего элемента управления, и я думаю, что он начнет работать.

Еще одна вещь, которую вам, возможно, понадобится настроить - это обработчик OnInit. Как правило, OnInit является переопределением Control.OnInit, поэтому в конечном итоге он будет выглядеть следующим образом:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    jQuery.RequestDnnPluginsRegistration();
}

Вы также можете посмотреть мой пример этого (и других) плагинов на https://github.com/bdukes/DNN-World-Demos. Эти примеры довольно урезаны, поэтому вы увидите, что есть несколько стилей CSS, которые вы не действительно нужно там, если вы их не используете.

...