在AJAX调用之后,我的数据表不会刷新

问题描述 投票:0回答:2

您好我已经设置了我的数据表。我能够显示页面加载的数据。但是,当我单击下一页时,将调用服务器端并返回数据,但数据表不会刷新。谁能告诉我发生了什么事?

$(document).ready(function () {
   //get Data Tables Query
   buildDataTables();
});


function buildDataTables() {
    if (!$.fn.DataTable.isDataTable('#locationTable')) {
        $('#locationTable').DataTable({
            "bServerSide": true,
            "sAjaxSource": '/Home/GetDataTablesQuery',
            paging: true,
            "iDisplayLength": 10,
            "aoColumns": [
                { "mData": "Address1", "name": "Address 1" },
                { "mData": "City", "name": "City" },
                { "mData": "Size", "name": "Approx SF" },
                { "mData": "StoreNumber", "name": "Store #" },
            ]
        });
    }

如何刷新分页上的数据表数据?

datatables
2个回答
0
投票

我知道问题是什么。我总是在响应中将sEcho设置为10。我们需要将DataTable发送的值传递给服务器。

 [AllowAnonymous]
        public AdvancedJsonResult GetDataTablesQuery(LocationsFilter locationFilter)
        {
            List<LocationInfo> locationInfos = new List<LocationInfo>();
            int totalRecords = 0;

            locationFilter.CurrentPage = (locationFilter.iDisplayStart/locationFilter.iDisplayLength) + 1;

            ////Default Page Number to 1 if Zero
            //if (locationFilter.CurrentPage == 0)
            //{
            //    locationFilter.CurrentPage = 1;
            //}

            //Default Page Size
            locationFilter.PageSize = locationFilter.iDisplayLength;

            //Get Records
            locationInfos = _LocationInfoLogic.Get(locationFilter, out totalRecords);
            var dataTablesResponse = new { aaData = locationInfos.ToArray(), iTotalRecords = totalRecords, iTotalDisplayRecords = totalRecords, sEcho = locationFilter.sEcho };
            return new AdvancedJsonResult { Data = dataTablesResponse };
        }

0
投票

最简单的方法是在ajax $("#datatble").DataTable().ajax.reload();的成功调用中编写以下代码

如果你想在同一页面上保持响应$("#tag").DataTable().ajax.reload(null,false);

© www.soinside.com 2019 - 2024. All rights reserved.