У меня есть страница с частичным представлением _PartialList. Код:
<div class="col-md-8 col-sm-12">
<div class="card" id="listHeader">
<div class="card-header">
<h5 class="card-title">Seznam kontaktov</h5>
<label id="lbTest">test</label>
<div class="row">
<div class="col-12 form-inline">
<select id="ddlSelect" asp-items="Model.Stranke" onchange="filterData();" class="form-control"></select>
<input type="text" name="SearchString" placeholder="Išči" value="@ViewData[" CurrentFilter"]" id="tbSearch" class="form-control" />
<input value="Išči" type="button" id="btnSearch" class="btn btn-primary ml-2" onclick="filterData();" />
<div class="text-right">
<a asp-controller="Kontakti" asp-action="Add" class="btn btn-primary" role="button">Dodaj</a>
</div>
</div>
</div>
</div>
<div id="sectionList">
@{await Html.RenderPartialAsync("_PartialList", Model);}
</div>
</div>
</div>
В частичном представлении у меня есть таблица, в которой отображаются все записи, которые я возвращаю с контроллера. Пользователи могут фильтровать данные через @ddlSelect и @tbSearch. Для этого я использую следующие jquery:
function filterData() {
var sender = $(this).attr('id');
// drop down
var strSelected = "";
$('#ddlSelect option:selected').each(function () {
strSelected += $('#ddlSelect')[0].value;
});
// search text
var search = $('#tbSearch').val();
// url
var url = '/Kontakti/IndexPartial?idSelect=' + strSelected;
url += '&searchString=' + search;
// partial reload
$('#sectionList').load(url);
return false;
}
Это прекрасно работает, когда из контроллера возвращаются результаты - таблица get обновляется.
Но когда пользователь вводит поиск со строкой, которая не дает никаких результатов (пустой список), таблица не обновляется / не очищается, но строки последнего (успешного) запроса по-прежнему отображаются.
Как показать пустую таблицу (без строк), когда из контроллера возвращается пустой список?