bootstrap-table要实现排序的功能需要在给定的列添加两个属性
1:sortable(配置项)/data-sortable(html中的属性) 为true
2:如果列表中的数据是单纯的数值则使用sortName(配置项)/data-sort-name(html中的属性)来配置根据表中的那列数据进行排序即可。如果列表中的数据为非数值,则需要通过sorter(配置项)/data-sorter(html中的属性)来自定义排序规则
由于开发中使用了"|"的字符,我写了的自定义排序,代码如下
/**
*自定义列排序
* @param valA
* @param valB
* @returns {number|*}
*/
function customColumnSort(valA,valB){
console.log(valA)
let valAStr = String(valA);
let valBStr = String(valB);
if(valAStr.indexOf("|")>0) {
valA = +valAStr.split("|")[0];
valB = +valBStr.split("|")[0];
}
return compareNumber(valA,valB);
}
/**
* 比较值的大小
* 如果numA,numB都是非数值,则返回0,
* 如果numA为数值numB为非数值,则返回1,
* 如果numA为非数值,numB为数值返回-1,
* 如果numA,numB都为数值返回numA-numB的值
* @param numA
* @param numB
* @returns {number}
*/
function compareNumber(numA,numB){
if(!numberRex.test(numA) && !numberRex.test(numB)){
return 0;
}else if(!numberRex.test(numA) && numberRex.test(numB)){
return -1;
}else if(numberRex.test(numA) && !numberRex.test(numB)){
return 1;
}else{
return numA - numB;
}
}
这样在配置项中sorter指向customColumnSort即可实现排序功能
来源:https://blog.csdn.net/feixiangzaitianye/article/details/98766145