ExtJS GridPanel numberColumn - сортировка - PullRequest
2 голосов
/ 24 августа 2010

У меня есть панель сетки с 4 столбцами, один из которых числовой (число до 4 цифр), и я хотел бы отсортировать строку по этому столбцу. Моя проблема заключается в том, что Ext JS сортирует строки, как если бы столбец был текстовым, поэтому 5 сортируется после 3000.

Я пытался использовать numberColumn вместо обычного столбца (указав x-тип в столбцах GridPanel), но это не меняет сортировку.

Таким образом, я попытался отформатировать числа так, чтобы 5 выглядело как 0005, а 0005 было бы до 3000. Но параметры форматирования numberColumn не позволяют указать минимальное количество цифр (в Java, используя NumberFormat, 0000 будет работать, а здесь нет).

Итак, я установил рендер, чтобы заставить мой номер отображаться с четырьмя цифрами, он работает, но кажется, что метод сортировки использует значения перед визуализацией, что вполне логично.

Я застрял после того, как испробовал все мои идеи, у кого-нибудь есть подсказка?

Ответы [ 4 ]

1 голос
/ 14 октября 2012

У меня была похожая проблема, тип столбца это не исправляет. Для правильного упорядочивания тип в модели должен быть числовым.

1) Установите тип поля как целое в определении модели.

Ext.define('myModel', {
  extend: 'Ext.data.Model',
  fields: [{ name: 'myField', type: 'int' }]
});

2) Создайте магазин, используя эту модель.

var myStore = Ext.create('Ext.data.Store',{
  model: 'myModel'
});

3) Определите GridPanel с помощью хранилища и свяжите свое поле как dataIndex с определением столбцов.

Ext.create('Ext.grid.Panel',{
  store: myStore,
  columns: [{
    header: 'Numbers',  dataIndex: 'myField'
  }]
});
1 голос
/ 07 ноября 2010

Если вы используете сортировку в удаленном хранилище, то сортировка выполняется удаленно (база данных, например, mysql). Так какой тип столбца в базе данных для этого поля? Если это символ или varchar, то это проблема.

0 голосов
/ 19 мая 2014
Ext.define('ExtMVC.model.Contato', {
  extend: 'Ext.data.Model',
  fields: [{'id', type: 'int'}, 'name', 'phone', 'email']
});

Это мой код, который подключается к MySQL.Я последовал за этим -> {'id', наберите: 'int'}, и все получилось ... Спасибо всем!Я использую Ext js 4.2.x

0 голосов
/ 20 декабря 2011

Я столкнулся с подобной проблемой, когда по сеткам exj сортировка по каждой цифре в вашем номере, так что, например, список может быть переупорядочен в 1, 2, 22, 3, 4, 41, 5 ... для того, что стоит,я обнаружил в extjs4 , что определение типа int в модели помогло, я не указал локальную или удаленную сортировку, но, похоже, она работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...