一、需要添加
- 1、需要排序的字段加上
sort: true 属性 - 2、
table.on('sort(lay-filter的值)', function(obj) { 监听排序点击操作 - 3、php接收参数:
sort_field,sort_order 实现排序 - 4、实际使用中把数据获取方式
data 写死的,改为 url 接口动态获取 - 5、效果图如下:

二、html代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css" v="2.5.6" e="layui"/>
</head>
<body>
<table id="demo" lay-filter="test"></table>
<script type="text/html" id="statusTemplet">
{{# if(d.status == 1) { }}
<button class="layui-btn layui-btn-xs">已通过</button>
{{# } else if (d.status == 2) { }}
<button class="layui-btn layui-btn-danger layui-btn-xs">已驳回</button>
{{# } else { }}
<button class="layui-btn layui-btn-primary layui-btn-xs">待审核</button>
{{# } }}
</script>
</body>
<script src="https://www.layuicdn.com/layui/layui.js" v="2.5.6" e="layui.all"></script>
<script type="text/javascript">
layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element'], function () {
var laydate = layui.laydate
,laypage = layui.laypage
,layer = layui.layer
,table = layui.table
,carousel = layui.carousel
,upload = layui.upload
,element = layui.element;
let userTable = table.render({
elem: '#demo'
,data: getData()
,cols: [[
{field: 'id', title: 'ID', sort: true, fixed: 'left', width: 100}
,{field: 'username', title: '用户名'}
,{field: 'status', title: '状态', align: 'center', templet: '#statusTemplet'}
,{field: 'sex', title: '性别', sort: true}
,{field: 'experience', title: '积分', sort: true}
,{field: 'score', title: '评分', sort: true}
]]
,page: true
,limit: 6
,limits: [3,6,9]
});
table.on('sort(test)', function(obj) {
let sort_field = obj.field;
let sort_order = obj.type;
let sortWhere = {sort_field, sort_order};
userTable.reload({
initSort: obj
,where: sortWhere
});
layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
});
function getData() {
let data = [
{"id":10000,"username":"user-0","sex":"女","experience":255,"logins":24,"score":57,status:0},
{"id":10001,"username":"user-1","sex":"男","experience":884,"logins":58,"score":70.5,status:0},
{"id":10002,"username":"user-2","sex":"女","experience":650,"logins":77,"score":31,status:1},
{"id":10003,"username":"user-3","sex":"女","experience":362,"logins":157,"score":68,status:0},
{"id":10004,"username":"user-4","sex":"男","experience":807,"logins":51,"score":6,status:2},
{"id":10005,"username":"user-5","sex":"女","experience":173,"logins":68,"score":87,status:0},
{"id":10006,"username":"user-6","sex":"女","experience":982,"logins":37,"score":34,status:2},
{"id":10007,"username":"user-7","sex":"男","experience":727,"logins":150,"score":28,status:1},
{"id":10008,"username":"user-8","sex":"男","experience":951,"logins":133,"score":14,status:0},
{"id":10009,"username":"user-9","sex":"女","experience":484,"logins":25,"score":75,status:0}
];
return data;
}
});
</script>
</html>

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
三、PHP部分代码
public function lists($param, $pager)
{
$sorts = [];
$hasData = self::getWhere($param, $sorts);
if (!$hasData) {
return ['list' => [], 'count' => 0];
}
$userDao = new UserDao();
$data = $userDao->pager($param, '*', $pager, $sorts);
if ($data['list']) {
}
return $data;
}
public function getWhere(&$param, &$sorts)
{
$hasData = true;
$sortField = !empty($param['sort_field']) ? $param['sort_field'] : '';
$sortOrder = !empty($param['sort_order']) ? $param['sort_order'] : '';
if ($sortField && $sortOrder) {
$sorts = [$sortField => $sortOrder];
}
unset($param['sort_field'], $param['sort_order']);
return $hasData;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
四、其他