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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在AJAX调用之后,我的数据表不会刷新相关的知识,希望对你有一定的参考价值。

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

$(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 #" },
            ]
        });
    }

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

答案

我知道问题是什么。我总是在响应中将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 };
        }
另一答案

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

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

以上是关于在AJAX调用之后,我的数据表不会刷新的主要内容,如果未能解决你的问题,请参考以下文章

通过ajax调用更新行后使用jQuery对表进行排序

键盘输入时,如何在Ajax调用URL更改后停止MVC页面刷新

ajax调用后如何停止刷新页面?

js ajax异步局部刷新技术底层代码实现

刷新片段内的视图

刷新标签片段和 viewpager