jquery datatable的使用问题
最近正在使用datatable和jquery做一个查询数据的操作,目标是达到这样的效果:有一个input 框和一个查询按钮,input框用于选择日期,然后希望点击查询按钮后,能够把希望的数据放入datatable中显示出来,根据我的理解是需要在查询按钮的点击事件中修改datatable的服务端数据源地址,因为需要传入前面选择了的日期,然后datatable向服务端获得返回的json数据,我的做法是给指定的table重新设置了datatable的属性,具体代码如下:
最开始的设置
var datatable = $("#example1").dataTable({ "oLanguage": { "sSearch": "搜索:", "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "Nothing found - 没有记录", "sInfo": "显示第 _START_ 条到第 _END_ 条记录,一共 _TOTAL_ 条记录", "sInfoEmpty": "显示0条记录", "oPaginate": { "sPrevious": " 上一页 ", "sNext": " 下一页 ", } }, "bAutoWidth":false, "bProcessing":true, "bRetrieve":true, });
查询按钮的点击事件中是这样设置的:
datatable.dataTable({ "oLanguage": { "sSearch": "搜索:", "sLengthMenu": "每页显示 _MENU_ 条记录", "sZeroRecords": "Nothing found - 没有记录", "sInfo": "显示第 _START_ 条到第 _END_ 条记录,一共 _TOTAL_ 条记录", "sInfoEmpty": "显示0条记录", "oPaginate": { "sPrevious": " 上一页 ", "sNext": " 下一页 ", } }, "bProcessing": true, "bDestroy":false, "sAjaxSource": "timeQuery.action?type="+type+"&date="+date, "aoColumns":[ { "mData": "studentid" }, { "mData": "studentname" }, { "mData": "studentclass" }, { "mData": "tellphone" }, { "mData": "replytime" }, { "mData": "messagecontent" } ] });
var datatable 是在$(document).ready(function(){ 这里定义的});
但是这样设置并没有向服务器发送请求;
我看过datatable的官网,上面有点击下一页,或者改变页面显示记录的数量后向服务端发送请求的功能,但是我这个请求是有datatable外部的标签控制的,我这样做不知道对不对,或者还有其他方法,希望大家能够不吝赐教,在此先谢过大家!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
设置
"serverSide": true,
下载datatables的plug-in API fnReloadAjax 可以解决这个问题。fnReloadAjax()方法可以控制刷新
同求,试过几种方法了。。
不是翻页的问题,我只是希望能够动态控制"sAjaxSource"的值,一楼的答案已经接近,但是如果我需要传送到参数不能用插件来控制,那该怎么办呢,肯定是需要使用javascript代码来控制,我想知道的是这段javascript代码该怎么写。
翻页要向后台发送请求,你是指后台处理吧,datatable有个 bServer,是不是这个意思呢?
你可以不用这样做 datatables有个sdom的属性 结合起来使用 和其他的时间插件配合
具体你可以看这个帖子:Datatables之强大的sDom属性的应用
http://bbs.sailit.cn/forum.php?mod=viewthread&tid=59&fromuid=4
你需要动态设置sAjaxSource
首先oTable.fnSettings().sAjaxSource='/you.action?date='+date;
然后oTable.fnDraw();