datatables + sorttable.js 列排序

首先看看官网是怎么说排序的:
https://datatables.net/examples/basic_init/table_sorting.html
我用这种方式试了一下,图标是出来了,也可以点击,but点击之后没什么用,数据还是原来的顺序。

table = $('#datatable').DataTable({
			// "scrollX": true,
			"scrollY": $(window).height() - 300,
			"stateSave": false,
			autoWidth: false,
			ordering: true, //排序
			searching: false, //不显示搜索框
			pagingType: "full", //分页按钮类型显示上下页、首尾页
			processing: true, //是否显示“加载中”
			scrollCollapse: false, //当显示更少的记录时,是否允许表格减少高度
			serverSide: true, //服务器请求
			destroy: true, //
			lengthMenu: [10, 20, 50, 100],
			ajax: {
				url: baseurl,
				type: 'post',
				dataType: 'json',
				data: {},
			},
		});

我是用ajax请求后台的数据,也存在分页,但我的需求是点击表头只排当前页的数据。因此找了个第三方js实现该功能。(前提先把ordering设为false,否则会有冲突)

sorttable.js

1、下载sorttable.js:

直接下载:https://download.csdn.net/download/Swn__/14954516

官网:http://www.kryogenix.org/code/browser/sorttable/,(不需要jquery.js)

2、使用

包括JavaScript库放一个链接到它在你的页面的头,像这样:

<script src="sorttable.js"></script>

通过为表提供“可排序”类,将其标记为可排序的表:

<table class="sortable">
3、注意

该库的JavaScript文件称为 sorttable(两个T),但是您添加到表中的类为 sortable(一个T)。

4、美化

这就是您所需要的。现在,您可以通过单击标题在表中进行列排序。为了美观起见,您可能需要在样式表中添加以下样式,或者根据此样式自己制作一些样式:

/* Sortable tables */
table.sortable thead {
    background-color:#eee;
    color:#666666;
    font-weight: bold;
    cursor: default;
}

至此,当你点击表头时可以进行排序,如果想不对某列排序,只要在此列的<th>标签加上class="sorttable_nosort"即可。
但他不支持分页。

补充

若要按条件查询后重新生成表格,此时排序不起作用,需要在生成新表格之前先销毁 $("#datatable").DataTable().destroy();对象

$("#btn-search").click(function() {
		$("#datatable").DataTable().destroy();
		table = $('#datatable').DataTable({
			// "scrollX": true,
			"scrollY": $(window).height() - 300,
			"stateSave": false,
			autoWidth: false,
			ordering: false, //排序
			searching: false, //不显示搜索框
			pagingType: "full", //分页按钮类型显示上下页、首尾页
			processing: true, //是否显示“加载中”
			scrollCollapse: false, //当显示更少的记录时,是否允许表格减少高度
			serverSide: true, //服务器请求
			destroy: true, //
			lengthMenu: [10, 20, 50, 100],
			ajax: {
				url: baseurl,
				type: 'post',
				dataType: 'json',
				data: {},
			},
		});
})
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值