在 angular slickgrid 中,按列排序 asc/desc 工作正常。但删除按列标题菜单排序无法正常工作。当我删除排序时,数据集应重置为最初加载的数据视图。但它保持最后的排序顺序。当我清除所有按网格菜单排序时,它工作正常。在这里,我将我的问题案例分享为 gif 文件,请任何人帮助我解决此问题。
1 回答
1
你可以打电话dataView.reSort();
强制度假村,这似乎是你要找的。网格菜单调用dataView.refresh();
,我不确定这是否会触发reSort
核心库,也许它会触发。标题菜单仅删除列排序而不知道是否还有任何排序,它基本上不会跟踪剩下多少排序并且它不会调用 areSort
也不会 arefresh
但你可以自己调用它只会告诉DataView 嘿嘿,请去掉这个列的排序。
现在要向标题菜单添加一个额外的过程,您需要订阅clear-sort
标题菜单命令,您可以这样做(我没有测试它,但它应该可以工作)
this.gridOptions = {
headerMenu: {
onCommand: (e, args) => {
if (args.command === 'clear-sort') {
const dataView = args.grid.getData();
const sortCols = args.grid.getSortColumns();
// add logic to know if this is last column sort
if (sortCols.length === 0) {
// then call "refresh" or "reSort" either or
// dataView.refresh();
dataView.reSort();
// if that doesn't work then try to call lib SortService from (onAngularGridCreated)
// this.angularGrid.sortService.clearSorting();
}
}
}
}
请注意,我是 Angular-Slickgrid 的作者,这个解决方案不是库本身的一部分,我可能会稍后添加它,但现在这应该是一个可能的临时解决方案。
于 2020-06-20T18:16:55.343 回答