Jquery Datatable Server Side Pagination With External Search字段

时间:2017-02-15 06:38:34

标签: javascript jquery asp.net-mvc datatable pagination

我有一个显示一些数据的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>"
    },
});

Monthyear可能会有所不同。

2 个答案:

答案 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()是用于刷新表格的数据表函数。 显然,您需要将搜索字段中的数据添加到请求中。为此,我建议您浏览以下链接:

datatables