我已在自定义模块中成功实现了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)
标签未被删除。我尝试了几次不同的迭代,没有运气。
答案 0 :(得分:2)
查看ModuleSettings控件。
标签是一个无序列表,最后一个列表项有一个runat =&#34;服务器&#34;属性和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事件中处理,&#34; else&#34;部分使它不可见:
//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;
}
希望它有所帮助! 迈克尔
答案 1 :(得分:0)
您可以尝试跳过dnnTabs('remove')
,然后使用jQuery将其从DOM中删除:
<script type="text/javascript">
function removeTab(tabID) {
$('#tabs-demo '+tabID).remove();
};
</script>
答案 2 :(得分:0)
感谢John和Brian Dukes让我走上了正确的道路。
这是最终解决方案:
<script type="text/javascript">
function removeTab(tabID) {
jQuery(function ($) {
$('#tabs-demo').tabs('remove', tabID);
});
};
</script>