Вот что вы можете сделать с пользовательской фильтрацией.
HTML
Создайте два элемента управления, я использовал вспомогательный метод Html, чтобы создать ниже, и инициализировать средства выбора даты.Вы делаете выше.
@Html.TextBox("StartDate", "", new { @class = "form-control Startdatepicker",
placeholder = "dd/mm/yyyy", @readonly = "readonly" })
@Html.TextBox("EndDate", "", new { @class = "form-control Enddatepicker",
placeholder = "dd/mm/yyyy", @readonly = "readonly" })
JQuery datatable JS
Добавить атрибуты данных со значениями диапазона дат
"data": function (data) {
var startDate = $('#StartDate').val();
var endDate = $('#EndDate').val();
data.startDate = startDate;
data.endDate = endDate;
}
Ваш JS станеткак это показано ниже.
var table = $('#visitorsTable').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": '@Url.Action("GetData", "History")',
"type": "POST",
"datatype": "json",
"data": function (data) {
var startDate = $('#StartDate').val();
var endDate = $('#EndDate').val();
data.startDate = startDate;
data.endDate = endDate;
}
},
"columns": [
{ "data": "VisitorID" },
{ "data": "Visitor" },
{ "data": "Email" },
{ "data": "PhoneNumber" },
{
"data": "CheckedIn",
"render": function (d) {
return moment(d).format('DD-MM-YYYY HH:mm');
}
},
]
});
Как только вы это сделаете, убедитесь, что re draw
ваши данные, когда пользователь нажимает Применить фильтр даты .
$("#filter").click(function () {
table.fnDraw();
});
Теперь Start Date
и End Date
будут переданы с вашим вызовом API.
API Side
Вы сможете получить значения диапазона дат следующим образом.
var startDate = Request["startDate"];
var endDate = Request["endDate"];
Теперь вы можете применять эти фильтры даты.