bootstrap_table⾃定义排序⽅法
公司⽼项⽬使⽤的是bootstrap框架,表格使⽤的是bootstrap-table。当前有个需求,需要按照⾃定义⽅法来排序。⽐如要求,某些数据固定排在头部,其他的则按照对应字段排序。
最新的bootstrap-table中有customSort⽅法。
解释:The custom sort function is executed instead of the built-in sort function, takes three parameters: sortName: the sort name.
sortOrder: the sort order.
data: the rows data.
但是,项⽬中使⽤的是1.9.1 没有此⽅法。
于是曲线救国,采⽤prepend⽅法,插⼊要固定的数据。
初始化table之后,和每次点击排序名称的时候,添加两⾏代码:
$(this.table).bootstrapTable("refreshOptions", {data: data}) // data, 正常排序的数据
$(this.table).bootstrapTable("prepend", topFixed); // topFixed, 要固定在顶部的数据
这样就可以把需要固定显⽰在顶部的数据固定了,后⾯的数据依然按照列名对⽤字段排序。
customSort⽤法:
⾸先看⼀下对⽐效果:
默认排序:
customSort:
直接上代码:添加customSort有两种⽅法,⼀种是添加data-custom-sort属性,另⼀种是配置项
<table id="basic_table" data-custom-sort="customSort" ></table>
$("#basic_table").bootstrapTable({
data: dataT,
customSort: customSort,
columns: [bootstrap项目
{
field: 'id',
title: 'ID'
},
{
field: 'name',
title: '姓名',
sortable: true,
},
{
field: 'code',
title: '编号'
}
]
});
customSort ⽅法接收三个参数:
// ⾃定义排序⽅法,排序名称,排序⽅法(升序/降序),数据列表
function customSort(sortName, sortOrder, data) {
data.sort(function(a,b) {
let aa = a[sortName].toString().replace(/[^\d]/g, ''); // ⾮数字替换成空字符串 let bb = b[sortName].toString().replace(/[^\d]/g, '');
if(sortOrder == 'desc') {
return aa-bb;
} else {
return bb-aa;
}
})
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论