4

我有一堆名称类似于“Itemtype #”的记录,当它们输出到树视图中时,它们的排序不正确,如下所示:

  • 项目 1
  • 项目 10
  • 项目 11
  • 第 12 项
  • 第 13 项
  • 第 2 项
  • 第 3 项
  • 第 4 项

我的模型字段定义如下,我按“名称”排序:

fields: [
  { name: 'Id', defaultValue: 0, type: 'int', mapping: 'Id' },
  { name: 'Name', defaultValue: '', type: 'string', mapping: 'Name', sortType: Ext.data.SortTypes.asUCString },
  { name: 'Type', defaultValue: 0, type: 'int', mapping: 'Type' },
  { name: 'CreationDate', type: 'date', mapping: 'CreationDate' }
],

谁能指出我正确的方向?我正在使用 extjs 4.0.5

4

2 回答 2

16

在商店中,您必须通过 sorters 属性设置数据的显示方式:

var store = Ext.create('Ext.data.JsonStore', {
  .
  .
  .
  remoteSort: false, //true for server sorting
  sorters: [{
     property: 'Name',
     direction: 'DESC' // or 'ASC'
   }],
  .
  .
  .

})
于 2013-04-18T22:11:59.480 回答
1

尝试使用带有排序回调的排序器配置调用TreeStore.sort。在这种情况下,一个简单的字段排序不会做,因为天真的 alpha 排序不是你想要的。Ext.util.Sorter 文档顶部的示例显示了如何在商店中执行此操作,但您可以轻松地将其添加到模型的参数中。sorters

于 2013-04-18T22:16:44.830 回答