【发布时间】:2016-05-09 11:28:45
【问题描述】:
我使用 jquery 数据表来显示基于使用 ajax 的用户搜索的数据。数据表不刷新。当我单击下一个或上一个按钮时,它会显示第一次加载的值。
function searchCustomer() {
var frm = $("#customerDetailSearchForm").serializeObject();
$("#tbl_contact_search_result").hide();
$.ajax({
type: 'POST',
url: restContextPath + '/IONSWeb/rest/order/searchContact',
data: JSON.stringify(frm),
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data, status, xhr) {
$("#tbl_contact_search_result tbody").empty();
$.each(data.body, function(i, item) {
var checkBox = item.actionString;
var dataTableBodyHTML = '<tr><td>'+ checkBox + '</td><td>'+ item.name + '</td><td>'+ item.street +'</td><td>' + item.city + '</td><td>'+ item.state + '</td><td>' + item.phone +'</td></tr>';
$("#tbl_contact_search_result tbody").append(dataTableBodyHTML);
$("#tbl_contact_search_result").show();
});
var dataTable = $('#tbl_contact_search_result').DataTable();
},
error: function(jqXhr, textStatus, errorMessage) {
$('.ErrorMsg').html('<h5>An error has occurred</h5>');
}
});
}
【问题讨论】:
-
后返回是否为您提供正确的数据?也许它被缓存了?或者数据是否正确并且表格只是没有更新?
-
@Shilly,是的,我得到了正确的数据作为响应,并且数据表正在前 10 条记录中显示该数据。如果我使用下一个按钮或单击分页导航到第二页,则显示旧数据。如果我点击排序也显示旧数据。新数据立即消失。
-
听起来有点像这个函数和另一个设置数据表内容的函数冲突。这是将数据附加到表体的唯一函数吗?
-
是的,这是唯一将数据附加到表体的函数。
-
嗯,请看一下数据表库的手册,如果您自己没有编写这些代码,您可能需要使用其他代码或其他东西才能使导航/排序工作正常工作。不知道,对不起。
标签: javascript jquery datatables