我有一个数据表,在首次加载页面时加载。 这是ajax电话。
$(document).ready(function(){
$("#queueListSelect").dataTable({
"ajax": {
"url": "-,
"type": "GET",
"dataType": "json",
"contentType": "application/json; charset=utf-8",
"success": function(data){
var numberOfMessages = 0;
for(var key in data.queueInformation){
numberOfMessages++;
$("#queueListSelect tbody").append('<tr id= "row'+numberOfMessages+'"><td id="queueName'+numberOfMessages+'">'+data.queueInformation[key].queueName+'</td><td>'+data.queueInformation[key].pendingMessageCount+'</td><td>'+data.queueInformation[key].pendingMessageSize+'</td><td>'+data.queueInformation[key].receiverCount+'</td><td>'+data.queueInformation[key].inTotalMessages+'</td><td>'+data.queueInformation[key].outTotalMessages+'</td><td>'+data.queueInformation[key].receiverCount+'</td></tr>');
}
//success function requires a return, this removes the "loading" row that appears in the dataTable
$("#queueListSelect td.dataTables_empty").remove();
}
},
"paging": false,
"scrollY": "390px",
"scrollX": true,
"info": false
});
});
提交消息后,我希望使用ajax.reload功能重新加载dataTable,因此您将看到我有另一个用于提交消息信息的ajax调用。
var queueTable = $("queueListSelect").DataTable();
if ($("input[name=messageType]:checked").val() == "text"){
var textBody = $('#textMessageBody').val();
$.ajax ({
url: "",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({"queueName": queueName, "textBody": textBody, "jmsDeliveryMode": jmsDeliveryMode, "jmsDestination": jmsDestination, "jmsCorrelationID": jmsCorrelationID, "jmsType": jmsType, "jmsExpiration": jmsExpiration, "jmsPriority": jmsPriority}),
success: function() {
alert("Your message was sent");
},
complete: function(){
$("#messageModalCloseButton").click();
queueTable.clear();
**queueTable.ajax.reload();**
}
});
发送此消息后,模式将关闭,表格应该根据消息中发送的信息进行更新。我的调试器中当前没有错误,当我在其上放置一个断点时,它表明它运行 - 这很奇怪,因为该表不包含新信息。刷新页面后,将显示新信息。
为什么这个数据表功能不起作用的任何想法? 我正在使用jquery和datatables版本1.10。