DNN 6 jQuery Tabs

本文关键字:Tabs jQuery DNN | 更新日期: 2023-09-27 18:21:32

我已经尝试过几次,但都失败了一半,无法让DNN6版本的jQuery选项卡(称为DNNTabs)在自定义模块"编辑"页面中工作(该页面以模式打开,类似于模块"设置")。我希望将相同的默认主题/css应用于选项卡和按钮(它的行为应该几乎与设置完全相同)。

这似乎是一些文档的开始,但并不十分完整。

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

我已经在interwebs中搜索了一个示例,但大多数示例都使用了原始的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>

在其他地方,我读到我必须在我的OnInit中申请DNN插件注册,就像这样:

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

我是不是错过了另一个参考、代码行或其他什么?1) 所有选项卡都在加载时显示,2)单击选项卡只会滚动到模态中的id位置(之后无法滚动回顶部)

DNN 6 jQuery Tabs

我认为这看起来很完整;我看到的唯一问题是,在定义选项卡之前,您正在初始化插件。也就是说,您要做的第一件事是用ID选项卡检索元素,并为其设置插件,但该元素还不存在。把你的脚本移到你控制的底部,我想它就会开始工作了。

您可能需要调整的另一件事是OnInit处理程序。通常,OnInit是对Control.OnInit的覆盖,所以它最终看起来像这样:

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

你可能还想看看我的这个(和其他)插件的例子https://github.com/bdukes/DNN-World-Demos.这些例子都是精简的,所以如果你不使用它们,你会发现有一些CSS样式不是你真正需要的。