jquery的datatables,第一次加载没问题,再次加载datatables弹窗报错:cannot reinitialise datatable
来源:互联网 发布:淘宝能发布多少个宝贝 编辑:程序博客网 时间:2024/06/01 08:52
jquery的datatables,第一次加载没问题,再次加载datatables弹窗报错:cannot reinitialise datatable。
怎么解决?
1网上的解决办法:
2我的尝试。
1)尝试1。
加上 retrieve:true 和 destroy:true 两个参数即可 另见: retrieveOption destroyOption 参数具体含义
http://datatables.club/faqs/
加上之后,虽然不会报错,还是有个问题,就是ajax只执行一次,再次点击ajax就不触发了,即后台的action只执行了一次。这样肯定是不行的。
2)尝试2
只加上,$n.dataTable().fnDestroy();(注意是dataTable,不是DataTable,注意大小写,不然是无效的方法。dataTable是jQuery的用法,DataTable是amazeui的用法)
只可以触发ajax两次,第三次就报错了。
我去网上看,可能跟谷歌浏览器有关系,我就将谷歌浏览器换成IE浏览器,就不会报错了。
3)尝试3
加上 retrieve:true 和 destroy:true 两个参数,并且加上$n.dataTable().fnDestroy();
只可以触发ajax两次,第三次就报错了。谷歌浏览器存在这个问题,IE浏览器,就不会报错了。
5)尝试5
增加“retrieve”属性
然后增加$n.dataTable().fnReloadAjax(); 。
完美解决,无论点击多少次,都会正常调用ajax去后台加载。
但是如果只加$n.dataTable().fnReloadAjax(); ,不加retrieve属性,虽然也能每次都加载ajax去后台,但是会报错:
但是测试发现,增加“retrieve”属性,然后增加$n.dataTable().fnReloadAjax();。这种方式还是有个问题。
虽然每次都重新加载ajax,但是ajax执行的是url是第一点击时,写入的url(包括后边的?name=XX&type=XX),这样就会有问题。如果我是做统计,每次点击“查询”前,可能修改了查询条件,因此url要重新缀入参数的值,形成一个新的ur。
即url= url+ "?name=" + $(“#name”).val()+ "&type=" + $(“#type”).val()
但是这种方式,并没有执行新的url(url后边的参数值并没有变,后台加断点很容易发现)。
怎么办?
要重新设置一下datatable的ajax成员变量的值,让他去执行最新的url,因为每一次加载url后面的参数可能不同(比如做组合查询时,每次查询,可能要修改查询条件,查询条件的值是缀在url?后面的)。
方法如下:
http://blog.csdn.net/nihaoqiulinhe/article/details/53421230
我的实现代码:
var dataTablesSettings = $n.dataTable().fnSettings();
dataTablesSettings.ajax = {
"url" : href,
"pipe" : true,
"data" : {//因为参数是缀在href?后边的,所以data其实对我来说无用
"XX" : XX,
"XX" : XX
}
};//重新设置url
=====
总结:
0要实现多次加载,都会正常执行ajax去后台,要三个东西。
①retrieve属性
②fnSettings,重新设置url
③fnReloadAjax,重新执行ajax
1retrieve属性的作用,仅仅是,是用来控制不弹出如下错误框。
2jQuery的datatables,执行$("#xxx").dataTable( {···}),默认只会加载一次,即只执行一次ajax去后台。
3要重复加载,即点击一次,调用一次ajax去后台,就要调用$("#xxx").dataTable().fnReloadAjax();但是只执行这个还不行,要重新设置一下datatable的ajax,让他去执行最新的url,因为每一次加载url后面的参数可能不同(比如做组合查询时,每次查询,可能要修改查询条件,查询条件的值是缀在url?后面的)。
- jquery的datatables,第一次加载没问题,再次加载datatables弹窗报错:cannot reinitialise datatable
- DataTables解决 Cannot reinitialise DataTable 问题
- 解决dataTables再次调用不能清空数据,解决Cannot reinitialise DataTable问题
- DataTables warning (table id = 'IDTableName'): Cannot reinitialise DataTable
- Jquery datatables 重新加载数据
- dataTables去掉搜索框和每页多少条框体,解决Cannot reinitialise DataTable问题
- Jquery Datatables 异步分页加载数据
- Datatables warning(table id = 'example'): cannot reinitialise data table
- jquery表格datatables,直接加载和延迟加载
- 使用Ajax加载数据的dataTables
- jQuery 的插件 dataTables
- jQuery dataTables 的使用
- jQuery dataTables 的使用
- jQuery dataTables 的使用
- jquery DataTables的使用
- jQuery dataTables 的使用
- jquery-dataTables的使用
- Jquery DataTables的使用
- 【Linux】Vim编辑器-批量注释与反注释
- MINGW里面没有mingw32 make.exe
- 框架集
- Python之FTP多线程下载文件之多线程分块下载文件
- 每日学习记录
- jquery的datatables,第一次加载没问题,再次加载datatables弹窗报错:cannot reinitialise datatable
- 最短路径 Dijkstra算法 HDOJ_2544
- MemSQL 取代 HDFS 与 Spark 结合,性能大幅提升
- DOM对象篇
- Error installing libwebp
- OpenGL的几何变换
- F检验 Ftes算法t我的见解
- 大数加法
- Android studio插件大全