Я создаю одну форму, которая содержит два выпадающих меню, одну таблицу данных и одну кнопку. Кнопка должна фильтровать все данные в datatable, когда пользователь выбирает один из вариантов из выпадающего списка, и результат должен отображаться в DataTable. Я создаю действие в контроллере
public string FiltriranjeIzvjestaja(string tipId, string definicijaId)
{
var listaDb = new List<IzvjestajDefinicija>();
var listaM = new List<IzvjestajElementiVM>();
var data = _context.IzvjestajDefinicija.Where(x => x.Status == 1).OrderByDescending(x => x.IzvjestajDefinicijaId)
.Select(i => new IzvjestajElementiVM()
{
IzvjestajDefinicijaId = i.IzvjestajDefinicijaId,
KratkiNazivDefinicijeI =
(_context.IzvjestajDefinicija.Where(x => x.IzvjestajDefinicijaId == i.IzvjestajDefinicijaId && x.Status == 1).FirstOrDefault()).KratkiNaziv,
Naziv = i.Naziv,
Opis = i.Opis,
ShemaXSD = i.IzvjestajXsdshemai.Shema,
}).ToList();
var lista = "";
lista = JsonConvert.SerializeObject(listaM, Newtonsoft.Json.Formatting.None);
return lista;
}
И в моем представлении у меня есть следующее
$(document).ready(function () {
$('#tabela').dataTable({
language: {
buttons: {
copyTitle: 'Uspjeh',
copySuccess: {
_: '%d redova kopirano',
1: '1 red kopiran'
}
},
processing: "Upit se obrađuje...",
search: "Pretraga :",
lengthMenu: "_MENU_ redova",
info: "Prikazano _START_ do _END_ od ukupno _TOTAL_ redova",
infoEmpty: "Nema zapisa...",
infoFiltered: "(filtrirano _MAX_ redova ukupno)",
infoPostFix: "",
loadingRecords: "Zapisi se učitavaju...",
zeroRecords: "U tabeli je nula redova.",
emptyTable: "Tabela je prazna!",
select: {
rows: {
_: "",
0: "",
1: ""
}
},
paginate: {
first: "Prvi",
previous: "<i class='fas fa-arrow-left'></i>",
next: "<i class='fas fa-arrow-right'></i>",
last: "Posljednji"
},
aria: {
sortAscending: ": ",
sortDescending: ": "
}
},
ajax: {
"type": "POST",
"url": "/DemIzvjestaji/FiltriranjeIzvjestaja",
"data": function (d) {
d.tipId = $("#IzvjestajTipId").val();
d.definicijaId = $("#IzvjestajDefinicijaId-izv").val();
},
"dataSrc": ""
},
order: [[0, 'dsc']],
data: @Html.Raw(@Model.sve),
columns: [
{
data: "IzvjestajDefinicijaId",
"width": 20,
"className": 'dt-body-center'
},
{ data: "KratkiNazivDefinicijeI" },
{ data: "ShemaXSD" },
{ data: "Naziv" },
{ data: "Opis" },
]
}); //kraj tabele
var table = $('#tabela').DataTable();
// Primjeni pretragu samo za odabrane kolone
table.columns([1, 2, 3]).every(function () {
var that = this;
$('input', this.footer()).on('keyup change', function () {
if (that.search() !== this.value) {
that
.search(this.value)
.draw();
}
});
});
});
Проблема здесь в том, что при любом выборе из выпадающего меню появляется сообщение «Нет данных» Таблица данных. Я пытаюсь выяснить, почему, но я не мог найти решение и причину? Где я ошибся?
ОБНОВЛЕНИЕ
Вот сценарий в реальном времени, что произошло, когда вы выбираете значение из выпадающего меню
И вот что вы получите в результате