自定义排序,比如我需要把库存为3的产品排前面,首先需要自定义一个排序行数。sortName为用户点击排序列的列名,sortOrder为asc或desc,data你获取到的原始数据,自定义函数如下。
注意:这只是前端排序,服务器端排序请点击>>> 服务器端排序
function customSort(sortName, sortOrder, data) {
var order = sortOrder === 'desc' ? -1 : 1
data.sort(function (a, b) {
var v1 = a[sortName]
var v2 = b[sortName]
if (v1 ==3) {
return -1;
}
if (v1 > v2) {
return 1
}
return 0
})
}
//设置需要显示的列
var columns = [{
field: 'Id',
title: '编号'
}, {
field: 'ProductName',
title: '产品名称'
}, {
field: 'StockNum',
title: '库存',
sortable: true
}];
//bootstrap table初始化数据
$('#table').bootstrapTable({
columns: columns,
data: getData(), //请求后台的URL(*)
method: 'GET', //请求方式(*)
classes: "table table-bordered table-striped table-sm",
height: 400,
customSort: customSort
});
function customSort(sortName, sortOrder, data) {
var order = sortOrder === 'desc' ? -1 : 1
data.sort(function (a, b) {
var v1 = a[sortName]
var v2 = b[sortName]
if (v1 ==3) {
return -1;
}
if (v1 > v2) {
return 1
}
return 0
})
}
function getData() {
var data = [];
for (var i = 0; i < 2; i++) {
var item = {
Id: i,
ProductName: '香蕉' + i,
StockNum: i
};
data.push(item);
};
for (var i = 0; i < 5; i++) {
var item = {
Id: i,
ProductName: '苹果' + i,
StockNum: i
};
data.push(item);
};
for (var i = 0; i < 5; i++) {
var item = {
Id: i,
ProductName: '橘子' + i,
StockNum: i
};
data.push(item);
};
return data;
}