【问题标题】:implement server side pagination on datatable在数据表上实现服务器端分页
【发布时间】:2015-11-10 15:23:14
【问题描述】:

在 mvc 控制器中,我接收 MyTable 作为参数

public JsonResult GetListOfData(JobTable result)
{
   var query = ... get data ..
   IQueryable<MyData> resData;
   resData.recordsFiltered = query.Skip(result.start).Take(50).AsQueryable();
   resData.recordsTotal = query.Count(); 
   ... 
   return Json(resData, JsonRequestBehavior.AllowGet);         
}

内部视图我有初始化 jquery 数据表的 js 代码

function drawTable() {
            var table = $('#myTable').dataTable({
                processing: true,
                serverSide: true,
                searching: false,
                lengthChange: false,
                displayLength: 25,
                order: [[5, 'desc']],
                ajax: {
                    url: '@Url.Action("GetListOfData", "Index")',
                    data: function (d) {
                        ...
                        d.status = $('#Status').val(),                        
                        d.dateFrom = $('#DateFrom').val(),
                        d.dateTo = $('#DateTo').val(),
                        ...                     
                    }
                },

                columns: [
                    { data: 'Id' },                    
                    { data: 'Status' },                                        
                    { data: 'CreatedDate' },
                    ...
                ],
                columnDefs: [
                    {
                        targets: [0, 3, 4],
                        orderable: false
                    },
                    {
                        render: function (data, type, row) {
                            return '<a href="@Url.Action("Details", "Index")/' + data + '"><i class="glyphicon glyphicon-folder-open"></i></a>'
                        },
                        title: '',
                        targets: 0
                    }
                ]
            });
        }

问题是: 为了成功实现服务器端分页,我在这里缺少什么,我应该怎么做才能识别视图内点击的数字并将其作为 MyTable 参数的一部分接收?

【问题讨论】:

    标签: javascript jquery asp.net-mvc datatables


    【解决方案1】:

    我刚刚修好了!! recordFiltered 和 recordsTotal 的长度应该相同。

    我在服务器端做:

    return Json(new
            {
                draw = param.draw,
                recordsTotal = allData.Count(),
                recordsFiltered = filteredData.Count(),
                data = result
            }, JsonRequestBehavior.AllowGet);
    

    现在我做到了:

    return Json(new
            {
                draw = param.draw,
                recordsTotal = allData.Count(),
                recordsFiltered = allData.Count(),
                data = result
            }, JsonRequestBehavior.AllowGet);
    

    【讨论】:

      猜你喜欢
      • 2019-10-17
      • 2019-01-26
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      相关资源
      最近更新 更多