我有一个显示一些数据的Jquery数据表,它有一个外部搜索字段。我试图在Jquery Datatable插件的帮助下实现服务器端分页。但问题是,它有一个外部搜索字段,其中用户可以选择日期(基本上是月份和年份)并搜索记录。因此,每次用户选择搜索时,都需要刷新数据表。任何人都可以帮助我。
数据表
var LeaveDetailsTable = $('#LvReprtTable').DataTable({
"pageLength": 5,
"processing": true,
"serverSide": true,"searching": false,"bLengthChange": false,
"ajax": {
"url": "GetLeaveDetails",
"type": "POST",
"datatype": "json",
"data": function (d) {
d.EmpId = empId;
d.UserType = userType;
d.Month = "1";
d.year = "2017";
}
},
"columns": [
{ "data": "_fromdate" },
{ "data": "_todate" },
{ "data": "_strLvType" },
{ "data": "_leavedurationtype" },
{ "data": "_leavedurationtype" },
{ "data": "_leavedurationtype" },
],
"columnDefs": [{
"targets": -1,
"data": data,
"defaultContent": "<button>Click!</button>"
}]
,"language":
{
"processing": "<div class='row text-center waitIconDiv' id='LoadIconDiv'><img alt='Progress' src='~/Content/images/wait_icon.gif' width='50' height='50' id='imgProgLvRprt' /></div>"
},
});
Month
和year
可能会有所不同。
答案 0 :(得分:1)
无论您想要什么元素,都需要在数据表实例上调用ajax.reload()
:
LeaveDetailsTable.ajax.reload();
将使用在data
属性中添加的新参数将数据表的状态发布到控制器操作。
您还可以查看this article (Server Side Advanced Search using JQuery DataTables),其中介绍了如何使用JQuery DataTables将自定义参数发送到控制器操作。
答案 1 :(得分:0)
为实现这一点,我建议您使用jquery onchange
方法。例如:
$('.input-class').on('change', function () {
$table.fnDraw();
});
此处$table
表示数据表的名称,fnDraw()
是用于刷新表格的数据表函数。
显然,您需要将搜索字段中的数据添加到请求中。为此,我建议您浏览以下链接: