bootstrap jquery datatable在加载之前清除

时间:2015-12-01 09:10:04

标签: jquery ajax twitter-bootstrap datatables

我正在使用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");
                            }
                        });

请帮帮我。

1 个答案:

答案 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()方法确保事件侦听器绑定到每个搜索输入框。