2013-01-18 47 views
3

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

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

+1

这些解决方案是分机2.x的是什么版本的分机的选择您使用的? – VDP

+0

分机4,我相信 – anitacynax

回答

6

在Ext JS的4.x中你可以清除对电网的分拣您筛选之前。

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

这里是工作提琴:

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

UPDATE:

,如果你不过滤/做出改变,你可以强制UI使用更新:

grid.view.refresh(); 

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

+0

谢谢!有用! – anitacynax

+1

我确实有一个问题。我已将代码行(grid.store.sorters.clear();)放置在清除过滤器按钮的处理函数中。现在,如果存在过滤器并对一列进行排序,则按清除过滤器按钮不仅会删除过滤器,还会从列和列标题中删除排序和排序箭头图标。但是,如果没有过滤器存在,并且在单击列上的排序后单击清除过滤器按钮,则不会从列和列标题中删除排序和排序箭头图标。如何确保即使在这种情况下分拣机已被清除? – anitacynax

+1

过滤(或更改过滤)更新UI,以便您可以触发UI更新(我将稍后用代码更新我的答案:)) – VDP

0

使用下面的列模型(ExtJS的3.4)

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