【问题标题】:extjs column sort & sort arrow iconextjs 列排序和排序箭头图标
【发布时间】:2013-01-02 04:14:07
【问题描述】:

我有一份项目清单。当我单击列标题时,该列已排序,并且列标题中会出现一个排序箭头图标。但是,即使在过滤记录后(通过在过滤器文本字段中输入文本并按下过滤器按钮),该列仍会保留排序和排序箭头图标。我希望每次过滤记录时从列中删除排序和排序箭头图标。我发现了一些关于在重新加载网格时清除排序箭头图标的帖子(请参阅下面的链接)。但是我怎样才能把它应用到我的情况呢?任何提示将不胜感激。

http://www.sencha.com/forum/showthread.php?48437-Help-How-to-remove-sort-field-when-reload-grid

http://www.sencha.com/forum/showthread.php?3098-Clear-grid-s-sort-arrow-icon

【问题讨论】:

  • 这些解决方案适用于 Ext 2.x 您使用的是哪个版本的 Ext?

标签: sorting extjs extjs4 columnheader


【解决方案1】:

在 Ext JS 4.x 中,您可以在过滤之前清除网格上的排序器。

grid.store.sorters.clear();
grid.store.filter("name", "Lisa");

这是一个有效的小提琴:

http://jsfiddle.net/Vandeplas/5aKdc/

更新:

如果您不过滤/进行更改,您可以使用以下命令强制更新 UI:

grid.view.refresh();

示例:http://jsfiddle.net/Vandeplas/5aKdc/3/

【讨论】:

  • 我确实有一个问题。我已将代码行 (grid.store.sorters.clear();) 放在清除过滤器按钮的处理函数中。现在,如果存在过滤器并且我对一列进行排序,则按“清除过滤器”按钮不仅会删除过滤器,还会从列和列标题中删除排序和排序箭头图标。但是,如果不存在过滤器并且我在单击列上的排序后单击清除过滤器按钮,则不会从列和列标题中删除排序和排序箭头图标。即使在这种情况下,如何确保分拣机被清除?
  • 过滤(或更改过滤)会更新 UI,因此您可以触发 UI 更新(我稍后会用代码更新我的答案:))
【解决方案2】:

在列模型中使用以下选项 (ExtJs 3.4)

menuDisabled:true //there will be no any menu 
sortable:false // there will be menu but disabled sorting option

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多