将空值排序始终在数据表中排在最前面

时间:2018-12-11 14:07:28

标签: javascript datatables

我正在尝试找到一种使用数据表将空单元格始终排在顶部而不是底部的方法。

我发现了一些总是将空单元格强制到底部的方法,但是对于数据表来说这是新事物,并且不确定如何将空单元格始终排在顶部。

我试图找到一种使用数据表的方法,以便始终将空/​​空单元格排在顶部而不是底部。

例如,如果我的数据如下

| ACCOUNT # |
|-----------|
|           |
| 035721576 |
|           |
| 035721577 |

它会对其进行排序

| ACCOUNT # |
|-----------|
|           |
|           |
| 035721576 |
| 035721577 |

| ACCOUNT # |
|-----------|
|           |
|           |
| 035721577 |
| 035721576 |

1 个答案:

答案 0 :(得分:1)

您可以创建一个排序插件,如果未定义值,则返回Promise.resolve(3).then(_ => { console.log(_); console.log(4); }); 3 4 ,为空,则返回null(当值评估返回false时):

Number.*_INFINITY

用法

var __emptyOnTop = function(a, b, high) {
  a = a || high;
  b = b || high;
  return ((a < b) ? -1 : ((a > b) ? 1 : 0));   
}
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
  "empty-on-top-asc": function (a, b) {
     return __emptyOnTop(a, b, Number.NEGATIVE_INFINITY)
  },
  "empty-on-top-desc": function (a, b) {
     return __emptyOnTop(a, b, Number.POSITIVE_INFINITY) * -1
  }
});

演示-> http://jsfiddle.net/y4ewqLmu/

将来,当您遇到这样的问题时,请访问 https://datatables.net/plug-ins/sorting/ 并寻找类似的用例。我只是抓住了any-number插件(对我来说,现在是它的一部分)并进行了一些修改。