我正在使用jquery bootstrap样式 datatable 。我有3个输入字段和一个搜索按钮在屏幕上,当我第一次点击搜索按钮没有任何输入时,我得到正确的结果(假设1000条记录)与分页
但是当我下次使用某些输入点击搜索按钮时,我收到以下错误表ID无法重新启动数据表以获取有关此错误的详细信息,请参阅http://datatables.net/tn/3 。我得到了结果(假设有200条记录),但是第一次搜索显示分页(1000条记录)。
以下是我的代码。
$.ajax({
url: '../../search.do?param=searchUser',
type: 'post',
data:data,
success:function(result){
$("#dataTableBodyId").html(result);
$("#associatesDetailsId").DataTable({
"responsive": true,
"paging": true,
"searching":true
});
},
error:function(){
alert("error");
}
});
请帮帮我。
答案 0 :(得分:0)
您需要重新设计自己的方法,而不是与您拥有的代码作斗争。 @davidkonrad提到的基本问题是,你不能多次初始化表(将选项传递给构造函数)。
也就是说,这个代码块在第二次执行时会导致错误:
$("#associatesDetailsId").DataTable({
"responsive": true,
"paging": true,
"searching":true
});
在你的问题中,你声明你有3个输入字段,如果这些是用户输入搜索条件的文本框,那么这个例子应该让你开始:
Search example with individual text inputs
注意只调用构造函数的时间(可以传递选项的地方)在#9行。
// DataTable
var table = $('#example').DataTable();
初始化表后,调用columns.every()
方法并传递一个函数,该函数本身在keyup
事件上初始化事件监听器。 every()
方法确保事件侦听器绑定到每个搜索输入框。