在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调用之后,我的数据表不会刷新的主要内容,如果未能解决你的问题,请参考以下文章