【发布时间】:2017-06-19 17:07:14
【问题描述】:
我正在开发小型 mvc 应用程序,在我的视图中有一个选项卡控件,它有 3 个选项卡,根据 ViewBag 值我需要打开我的第三个选项卡,这是我的视图外观的图像:
因此,当加载 View 时,我需要检查 ViewBag 的值,并根据需要打开我的 TAB 3,所以这是我尝试过的:
<div class="" role="tabpanel" data-example-id="togglable-tabs">
<ul id="myTab" class="nav nav-tabs bar_tabs" role="tablist">
@if (ViewBag.SuccessBody == null)
{
<li role="presentation" class="active">
<a href="#tab_content1" id="home-tab" role="tab" data-toggle="tab" aria-expanded="true">TAB 1</a>
</li>
<li role="presentation" class="">
<a href="#tab_content2" role="tab" id="profile-tab" data-toggle="tab" aria-expanded="false">TAB 2</a>
</li>
<li role="presentation" class="">
<a href="#tab_content3" role="tab" id="profile-tab" data-toggle="tab" aria-expanded="false">TAB 3</a>
</li>
}
else
{
<li role="presentation" class="">
<a href="#tab_content1" id="home-tab" role="tab" data-toggle="tab" aria-expanded="true">TAB 1</a>
</li>
<li role="presentation" class="">
<a href="#tab_content2" role="tab" id="profile-tab" data-toggle="tab" aria-expanded="false">TAB 2</a>
</li>
<li role="presentation" class="active" onload="RedirectToTab();">
<a href="#tab_content3" role="tab" id="profile-tab" data-toggle="tab" aria-expanded="false">TAB 3</a>
</li>
}
</ul>
正如您所看到的,人们取决于值 od ViewBag.SuccessBody 我尝试加载相应的 HTML,所以如果有一个值,那么我将加载包含 TAB3 的 HTML 来拥有 class="active"(请阅读详细代码)。
但不幸的是,使用这种方法,TAB3 变得活跃但也不是 OPENED,因此它的内容不可见,它被准确地保留在 TAB1 上,而 TAB3 看起来像是活跃的,这很糟糕 :( .
所以我所做的是:
我编写了应该真正打开 TAB3 的 javasscript 方法,但我不知道如何调用它,所以我想我可以在我的 li 元素上使用 onload 方法调用它,所以你们可以在代码中看到上面我写在我的李上
onload="RedirectToTab();"
但不幸的是什么也没发生..
这是我的 RedirectToTab javascript 方法的定义:
function RedirectToTab() {
var customVal = $("#editViewBag").val();
if (customVal == 'True') {
$('#myTab a[href="#tab_content3"]').tab('show');
}
}
那么各位,我该如何根据我的 ViewBag 的值打开 TAB3?
谢谢大家 干杯
【问题讨论】:
标签: javascript jquery asp.net-mvc razor view