以编程方式对空白单元格进行排序
Programmatically sorting with blank cells
我正在通过 setSort 函数使用多列对 table 进行排序,该函数在下拉框更改时调用。在下面的代码中,病房列包含一些空值。
patientTable.setSort([
{ column: 'name', dir: 'asc' },
{ column: 'ward', dir: 'asc' }
])
问题是在按升序排序时,所有空值都出现在列表的顶部。我知道您可以使用 alignEmptyValues 在使用内置分拣器之一强制空单元格到底部时。使用 setSort 函数时有没有办法做到这一点?我在文档中找不到任何内容,向对象添加 alignEmptyValues 似乎没有任何作用。
我在 Edge 中使用 Tabulator 版本 4.9.3
您所要做的就是在列定义中设置 alignEmptyValues
,然后当您排序时,通过单击列 header 或以编程方式使用 setSort
,它将移动定义的空值。
var data = [
{name:"Tom", ward:"A"},
{name:"Dick", ward:"B"},
{name:"Harry", ward:"C"},
{name:"Larry", ward:""},
{name:"Moe", ward:"A"},
{name:"Curly", ward:"C"}
];
var table = new Tabulator("#example-table", {
data:data,
columns:[
{title:"Name", field:"name"},
{title:"Ward", field:"ward", sorter: "string", sorterParams: { alignEmptyValues:"bottom" } },
],
});
document.getElementById('sort').addEventListener('click', ev => {
table.setSort([
{ column: 'name', dir: 'asc' },
{ column: 'ward', dir: 'asc' }
]);
});
<link href="https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator.min.css" rel="stylesheet">
<script src="https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<div id="example-table"></div>
<br>
<button id="sort">Set Sort</button>
我正在通过 setSort 函数使用多列对 table 进行排序,该函数在下拉框更改时调用。在下面的代码中,病房列包含一些空值。
patientTable.setSort([
{ column: 'name', dir: 'asc' },
{ column: 'ward', dir: 'asc' }
])
问题是在按升序排序时,所有空值都出现在列表的顶部。我知道您可以使用 alignEmptyValues 在使用内置分拣器之一强制空单元格到底部时。使用 setSort 函数时有没有办法做到这一点?我在文档中找不到任何内容,向对象添加 alignEmptyValues 似乎没有任何作用。
我在 Edge 中使用 Tabulator 版本 4.9.3
您所要做的就是在列定义中设置 alignEmptyValues
,然后当您排序时,通过单击列 header 或以编程方式使用 setSort
,它将移动定义的空值。
var data = [
{name:"Tom", ward:"A"},
{name:"Dick", ward:"B"},
{name:"Harry", ward:"C"},
{name:"Larry", ward:""},
{name:"Moe", ward:"A"},
{name:"Curly", ward:"C"}
];
var table = new Tabulator("#example-table", {
data:data,
columns:[
{title:"Name", field:"name"},
{title:"Ward", field:"ward", sorter: "string", sorterParams: { alignEmptyValues:"bottom" } },
],
});
document.getElementById('sort').addEventListener('click', ev => {
table.setSort([
{ column: 'name', dir: 'asc' },
{ column: 'ward', dir: 'asc' }
]);
});
<link href="https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator.min.css" rel="stylesheet">
<script src="https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
<div id="example-table"></div>
<br>
<button id="sort">Set Sort</button>