Extjs4-在加载网格后为列提供默认排序

Posted

技术标签:

【中文标题】Extjs4-在加载网格后为列提供默认排序【英文标题】:Extjs4- Giving a default sort for a column after grid is loaded 【发布时间】:2014-03-27 14:50:02 【问题描述】:

网格加载数据后,如果我们尝试对任何列进行排序,默认方向是升序。我们是否可以为网格列定义默认排序,以便在加载网格后,如果我单击该列,它应该首先按降序排序。我不想在加载时按该方向对该列进行排序。这应该在网格加载了值之后发生。我正在使用远程排序。因此,每当加载网格时,我都会清除所有排序器,这样它就不会记住以前的排序。我尝试在服务器端动态添加排序器,但这会导致网格在加载时使用该属性和方向进行排序我不想要。 我尝试使用 sortInfo,它不起作用。

立即需要,如果有人能回答这个问题,将非常感激。非常感谢。

【问题讨论】:

【参考方案1】:

尝试将sorters 添加到您的store

Ext.define('SuggestedOrders.store.SODetails',

    extend: 'Ext.data.Store',
    // some more of your code
    sorters:
    
        field: 'column you need to sort by',
        direction: 'DESC'
    
);

附录:

您需要删除remoteSort: true 选项。设置后,您将无法单击列/属性标题来更改其排序方向。不带它试试,让我知道;)

【讨论】:

嘿,我试过了,但它不起作用,因为在服务器端,在创建窗口时分拣器正在被删除。我尝试动态添加,但这导致网格在加载时已经按该方向排序,这是我不想要的。您是否知道我可以为特定列设置默认排序的任何其他方法。所以,我想在加载网格时,当我点击任何列时,一些列按升序排序,一些列按降序排序。 已编辑,看看。如果您想手动单击列标题并更改其排序方向,则不应使用remoteSort: true\ 不,我不能这样做,因为它正在服务器端进行排序。您是否知道一旦加载网格,它应该使用降序作为其默认排序方向。 有什么意义,我不明白你的意见。只需让您的 phpDESC 或 oreder 回复您。为什么要在服务器端进行排序,然后在加载商店后再次使用 DESC onrder? 不,我不希望网格在加载时按降序排序,我希望它被加载,即页面被刷新,现在用新值打开网格,现在在任何时候,如果我第一次单击此列,它应该按降序排序,而不是默认的升序。所以我尝试在本专栏的模型中使用 sortDir,我尝试在商店中使用排序器,没有任何效果。

以上是关于Extjs4-在加载网格后为列提供默认排序的主要内容,如果未能解决你的问题,请参考以下文章

EXTjs 4.2.1 加载网格数据时显示默认数据

ExtJs 4.1.0 缓冲网格 + 本地排序/过滤

如果网格为空,Extjs 4 禁用排序

如何使用extjs4.1在网格中按降序对带有连字符的浮点值进行排序

Extjs 4.2 可排序网格,一条记录的位置固定

ExtJS4 网格不会更新远程数据库