我想对网格进行自定义排序,以便具有负id
的数据/项始终放在顶部,其余的应根据所选列(dataIndex
)进行排序
我曾尝试在columns
中使用sortFn
,但不知道如何继续。如果我返回该值,那么它不会影响按name
排序(在本例中)。
{
text: 'Name',
zwidth: 150,
autoSizeColumn: true,
sortable: true,
hideable: true,
dataIndex: 'name',
sorter: {
sorterFn: function (a, b) {
if (a.id < 0 || b.id < 0)
// how to put them in first two positons and rest sort by 'name'
}
}
}
整个例子都可以在这里找到。
https://fiddle.sencha.com/#view/editor&fiddle/3kqi
我正在使用ExtJS 6。
1条答案
按热度按时间wtlkbnrh1#
根据文档,您需要从分拣机功能返回:
a
和e1d1e在顺序方面应视为相同,a
应在b
之后,a
应在b
之前。因此,您需要处理不同的情况,例如:
如果单击
Name
列,这将导致您的Fiddle出现预期行为。但是,如果再次单击进行降序排序,则负数ID将位于末尾,正数ID将在开头。如果您想以不同的方式处理降序,可以在分拣机功能中使用
this.getDirection()
,结果是ASC
或DESC
。您可以基于此设置不同的逻辑。