我有一个带有搜索框的模态,当搜索按钮被点击时,会有一个调用控制器的ajax调用,然后返回一个结果表,然后将其放入div中。像这样:
$.ajax({
url: url,
data: JSON.stringify(viewModel),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
cache: false,
type: "POST",
success: function (result) {
if (result.success === true) {
$("#searchResultsPlaceHolder").show();
$("#searchResultsPlaceHolder").html(result.view, function() {
var noOfRows = $('#searchResultsTable tr').length;
if (noOfRows > 1) {
loadSearchDatatable();
}
});
}
},
error: function (responseText, textStatus, errorThrown) {
alert('Error - ' + errorThrown);
}
});
一切都很好,并且在我尝试使其成为数据表之前完美运行。如果我拿出线条
$("#searchResultsPlaceHolder").html(result.view, function() {
var noOfRows = $('#searchResultsTable tr').length;
if (noOfRows > 1) {
loadSearchDatatable();
}
});
并且只是
$("#searchResultsPlaceHolder").html(result.view)
它工作正常,它给了我一张表格,里面有我的结果。但由于这是一个模态,并且返回的结果可能会非常冗长,我想使用数据表来实现分页和排序。但每当我使用返回的html填充div后,我将loadSearchDatatable函数应用于表,我得到错误:
table id = searchResultsTable - Ajax错误
实际显示数据表,其中存在排序按钮和分页按钮,但它们都没有执行任何操作,并且表格长于我指定的长度(5)。这是我的数据表函数:
function loadSearchDatatable() {
$('#searchResultsTable').dataTable({
ajax: "data.json",
"bLengthChange": false,
'iDisplayLength': 5,
"bSort": true,
"sPaginationType": "full_numbers",
"bFilter": false,
"sDom": 'ft<"bottom"ilp>',
"bDestroy": false,
"aaSorting": [[0, "asc"]]
});
};
有没有人知道如何修复此错误?
答案 0 :(得分:0)
请改用以下代码:
$("#searchResultsPlaceHolder").html(result.view);
var noOfRows = $('#searchResultsTable tr').length;
if (noOfRows > 1) {
loadSearchDatatable();
}
同时删除功能ajax: "data.json",
中的loadSearchDatatable()
。