簡體   English   中英

在數據表上實現服務器端分頁

[英]implement server side pagination on datatable

在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參數的一部分接收?

我只是解決了! 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM