我有一個ASP.NET MVC驅動的網站,它在表中顯示記錄。該表是引導程序3表。如果沒有記錄,我會顯示一個div。在另一個用戶的建議下,我修改了視圖,以便表格與我的「沒有記錄」div一起呈現。jQuery隱藏ASP.NET MVC中的引導表視圖
事我已經在我的應用程序:
- 在我的CSS我已經設置了表顯示:無
在我的JS文件,我這樣做的頂部...
var absenceRows = $("#absencesTable tbody").find("tr").length; var $absTable = $("#absencesTable"); var emptyAbsenceDiv = $("#no-absences"); console.log(absenceRows); if (absenceRows === 0) { emptyAbsenceDiv.show("fast"); $absTable.hide("fast"); } else { emptyAbsenceDiv.hide("fast"); $absTable.show("fast"); }
然後我有一個AJAX調用,我找回數據:
$("#chosenDate").on("dp.change", function (e) { var formattedDate = moment(e.date._d).format('DD/MM/YYYY'); $(document).ajaxStart(function() { $("#absencesTable, #no-absences").fadeOut('0'); $("#loading").show(); }); $(document).ajaxComplete(function() { $("#loading").hide(); $("#absencesTable").fadeIn('200'); }); var ajaxOptions = { url: absenceDateUrl, type: 'post', contentType: 'application/json', dataType: 'json', data: '{selectedDate:' + JSON.stringify(formattedDate) + '}' }; $.ajax(ajaxOptions).done(function (data) { console.log(data); if (data !== null && data.length !== 0) { renderData(data); } else { console.log("No data! " + $("#absencesTable").is(":visible")); hideAbsences(); } }); });
在我的renderData構建我的數據則顯示錶和隱藏我沒有缺席的div
$("#no-absences").hide("fast", function() { $("#absencesTable").show("fast"); });
這工作得很好BTW。
如果沒有返回數據hideAbsences()被調用
if ($("#absencesTable").is(":visible")) { $("#absencesTable").hide("fast"); $("#no-absences").show("fast"); }
我知道我並不需要檢查表是可見的,但我在哪裏,我的點嘗試一切。
當沒有數據我的表不被隱藏。我同時顯示了div和table。
這是我的看法以供參考。
@if (Model.Count() == 0)
{
<div class="well well-lg" id="no-absences"><h3>Everybody is in! There are no absences today :)</h3></div>
}
<table class="table table-striped table-bordered" id="absencesTable">
<thead>
<tr>
<th>
Name
</th>
<th>
Date Out
</th>
<th>
Return Date
</th>
<th>
Absence Type
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@item.FullName
</td>
<td>
@item.DateFrom.Value.ToLongDateString()
<span class="label label-default">@item.AbsencePeriodFrom.PeriodText</span>
</td>
<td>
@item.DateTo.Value.ToLongDateString()
<span class="label label-default">@item.AbsencePeriodTo.PeriodText</span>
</td>
<td>
@item.AbsenceType.AbsenceTypeText
</td>
</tr>
}
</tbody>
</table>
當返回數據表的顯示屬性設置爲「顯示:表」,但我不認爲這是我的顯示/隱藏不工作的原因。我可能是錯的。我只想隱藏div並顯示錶格,反之亦然。
僅供參考我曾嘗試在jsFiddle中複製此內容,但我無法複製該錯誤(http://jsfiddle.net/f2r9mdah/)。我在想我的jQuery或View有點時髦。
你打開瀏覽器中的控制檯來檢查錯誤嗎? – 2014-09-30 13:30:20
沒有錯誤。 – 2014-09-30 13:47:44
@ArminderDahul它擊中console.log行嗎? – JB06 2014-09-30 19:14:52