我在View
中有Bootstrap Tabs menu。標籤1和標籤2的面板有兩個局部視圖pv1和pv2,每個視圖都有一個Select tag helper。正如我們所知,標記助手的asp-for
屬性會創建一個id和name屬性,其值與上面文章中所述的值相同。現在,當我點擊標籤1時,pv1就會顯示一個選擇標籤助手。而且,當我點擊tab2時,pv2會使用選擇標籤助手來呈現。兩個標籤助手都是相同的(年數列表),但是分別在tab1和tab2中爲不同目的選擇年份。 問題:無論在pv1 select tag helper中選擇了哪一年,pv2中的數據都會根據當年進行篩選,而不是篩選用戶在pv2 select tag helper上選擇的年份。 問題:爲什麼?我該如何解決這個問題?如何測試:當我點擊pv2中的GO
按鈕時,下面的Ajax代碼會彈出警報,並在pv2的select tag助手中選擇年份。使用相同的選擇標籤助手不工作的兩個部分視圖
請注意真正的方案有兩個以上選項卡,並在每個標籤面板局部視圖具有相同的選擇標記輔助和同GO
按鈕。我正在使用JQuery的Event Delegation以便簡化我的代碼,而不是爲每個GO
按鈕編寫單獨的Ajax調用。此外,在我的ViewModel
- 傳遞給視圖 - 我想只使用一個屬性年份列表和選定年份。
視圖模型:
public int entityid {get; set;}
...
public SelectList lstYears {get; set;}
public int SelectedYear {get; set;}
...
查看:
<ul id="myTabstripID" class="nav nav-tabs">
<li id="AddprojTab"><a data-toggle="tab" href="#menu1">Menu 1</a></li>
<li id="UpdPorjTab"><a data-toggle="tab" href="#menu2">Menu 2</a></li>
</ul>
<div class="tab-content">
<div id="menuAP" class="tab-pane in active">
<div class="AddTabContenData"></div>
</div>
<div id="menuUP" class="tab-pane in active">
<div class="UpdTabContenData"></div>
</div>
</div>
局部視圖1:
...some html here
Select Order Year: <select asp-for="SelectedYear" asp-items="@Model.lstYears"></select><button type="button" class="btnGO btn btn-default">GO</button>
...some html here to display data based on year selected in pv1
局部視圖2:
...some html here
Select Delivery Year: <select asp-for="SelectedYear" asp-items="@Model.lstYears"></select><button type="button" class="btnGO btn btn-default">GO</button>
...some html here to display data based on year selected in pv2
Ajax代碼:
$(document).ready(function() {
$('.tab-content').on('click', '.btnGO', function (event) {
var btnVal = $(this).val();
var selectedYearVal = $('#SelectedYear').val();
alert(selectedYearVal);
$.ajax({
...
...
});
});
});
它的工作就像一個魅力。在我的例子中,方便的是Bootstrap Tabstrip中已經存在的類「tab-pane」。在我的情況下,因爲tab窗格是partial的容器,所以我在代碼中使用了'tab-pane',並且它工作正常。感謝您提供必要的,但點的細節。 – nam
因此,Bootstrap中的兩個類'tab-content'和'tab-pane'在這個特定的例子和代碼中對我來說非常方便。 – nam