jquery datatable的使用问题

发布于 2021-11-23 20:40:23 字数 1796 浏览 856 评论 7

最近正在使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

长安忆 2021-11-30 07:25:55

设置
"serverSide": true,

滥情空心 2021-11-30 06:02:23

下载datatables的plug-in API fnReloadAjax 可以解决这个问题。fnReloadAjax()方法可以控制刷新

凯凯我们等你回来 2021-11-30 05:06:43

同求,试过几种方法了。。

旧伤慢歌 2021-11-30 04:19:16

不是翻页的问题,我只是希望能够动态控制"sAjaxSource"的值,一楼的答案已经接近,但是如果我需要传送到参数不能用插件来控制,那该怎么办呢,肯定是需要使用javascript代码来控制,我想知道的是这段javascript代码该怎么写。

策马西风 2021-11-29 09:09:17

翻页要向后台发送请求,你是指后台处理吧,datatable有个 bServer,是不是这个意思呢?

惜醉颜 2021-11-29 06:16:53

你可以不用这样做 datatables有个sdom的属性 结合起来使用 和其他的时间插件配合

具体你可以看这个帖子:Datatables之强大的sDom属性的应用

http://bbs.sailit.cn/forum.php?mod=viewthread&tid=59&fromuid=4

各自安好 2021-11-28 21:02:13

你需要动态设置sAjaxSource

首先oTable.fnSettings().sAjaxSource='/you.action?date='+date;

然后oTable.fnDraw();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文