0

我已经在自定义模块中成功实现了 jQuery dnnTabs。我试图弄清楚如何以编程方式删除选项卡。

这是用于设置选项卡的 javascript:

    <script type="text/javascript">
        jQuery(function ($) {
              $('#tabs-demo').dnnTabs();
        });
    </script>

这是我为删除标签而创建的函数:

     <script type="text/javascript">
        jQuery(function ($) {
            $('#tabs-demo').dnnTabs();
         });
     </script>

这是我为删除标签而创建的函数:

     <script type="text/javascript">
         function removeTab(tabID) {
            $('#tabs-demo').dnnTabs('remove', tabID);   
         };
     </script>

这是我从后面的代码中调用函数的方式:

     ScriptManager.RegisterStartupScript(Me.Page, Me.[GetType](), "tmp", "<script type='text/javascript'>removeTab(1);</script>", False)

选项卡没有被删除。我尝试了几次不同的迭代,但没有运气。

4

3 回答 3

2

查看 ModuleSettings 控件。

选项卡是一个无序列表,最后一个列表项有一个 runat="server" 属性和一个 id。此选项卡用于特定于模块的设置。当没有时它是隐藏的(或者程序员已经将它们放在一个额外的控件中,带有来自模块操作菜单的操作链接)。

<ul class="dnnAdminTabNav dnnClear">
    <li><a href="#msModuleSettings"><%=LocalizeString("ModuleSettings")%></a></li>
    <li><a href="#msPermissions"><%=LocalizeString("Permissions")%></a></li>
    <li><a href="#msPageSettings"><%=LocalizeString("PageSettings")%></a></li>
    <li id="specificSettingsTab" runat="server">
        <asp:HyperLink href="#msSpecificSettings" ID="hlSpecificSettings" runat="server" />
    </li>
</ul>

最后一个选项卡的可见性在控件的 OnLoad 事件中处理,“else”部分使其不可见:

                //Set visibility of Specific Settings
                if (SettingsControl == null == false)
                {
                    //Get the module settings from the PortalSettings and pass the
                    //two settings hashtables to the sub control to process
                    SettingsControl.LoadSettings();
                    specificSettingsTab.Visible = true;
                    fsSpecific.Visible = true;
                }
                else
                {
                    specificSettingsTab.Visible = false;
                    fsSpecific.Visible = false;
                }

希望能帮助到你!迈克尔

于 2012-10-23T08:42:19.680 回答
0

感谢 John 和 Brian Dukes 让我走上了正确的道路。

这是最终修复:

    <script type="text/javascript">
         function removeTab(tabID) {
             jQuery(function ($) {
                 $('#tabs-demo').tabs('remove', tabID);
             });
         };
    </script>
于 2012-02-09T16:05:25.077 回答
0

您可以尝试跳过dnnTabs('remove')并使用 jQuery 将其从 DOM 中删除:

 <script type="text/javascript">
     function removeTab(tabID) {
        $('#tabs-demo '+tabID).remove();   
     };
 </script>
于 2012-02-08T23:02:59.013 回答