【问题标题】:Angular slickgrid column wise remove sort option not working properlyAngular slickgrid 列删除排序选项无法正常工作
【发布时间】:2020-06-20 17:11:03
【问题描述】:

在 angular slickgrid 中,按列排序 asc/desc 工作正常。但删除按列标题菜单排序无法正常工作。当我删除排序时,数据集应重置为最初加载的数据视图。但它保持最后的排序顺序。当我清除所有按网格菜单排序时,它工作正常。在这里我将我的问题案例分享为 gif 文件,请任何人帮助我解决这个问题。

【问题讨论】:

  • 我理解您的问题,因为我是 Angular-Slickgrid 的作者,但请注意您的问题已被标记为“已关闭”。原因是因为您没有在问题中包含任何代码,并且通常这并不能证明您在提出问题之前已经做了一些努力,所以最好提供一些代码来为下一个阅读您的问题的人提供上下文。所以请记住这一点,因为您是 Stack Overflow 上的新手。
  • 亲爱的@ghiscoding,感谢您的回答。我尝试了数据视图刷新和度假。但不适用于MW。所以我尝试了this.angular Grid.sort Service.clearSorting()。这对我的情况很好。如果我问任何问题意味着我将分享我的代码 sn-p。

标签: angular angular-slickgrid


【解决方案1】:

您可以致电dataView.reSort(); 强制使用度假村,这似乎就是您想要的。网格菜单调用dataView.refresh();,我不确定这是否会触发核心库的reSort,也许确实如此。标题菜单仅删除列排序而不知道是否还有任何排序,它基本上不会跟踪剩下多少排序,它不会调用 reSort 也不会调用 refresh 但你可以调用它你自己它只会告诉 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 的作者,这个解决方案不是库本身的一部分,我可能会稍后添加它,但现在这应该是一个可能的临时解决方案。

【讨论】:

    猜你喜欢
    • 2011-10-12
    • 2022-12-03
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    相关资源
    最近更新 更多