Баги группировки Grid по полю
Вложений: 1
Всем привет!
Обнаружил странную проблему при группировке по полю. Прописываю поле в Store: groupField: 'positionName' Параметры базового Store, от которого все остальные наследуются: autoLoad: true, autoSync: true, remoteSort: true, remoteFilter: true, Что получается в итоге можно посмотреть во вложении. Почему-то Ext по какому-то своему алгоритму отбирает строки для группировки, создавая кучу дублей. Сначала грешил на сортировку, однако у меня есть проект на древнем ExtJS 2.3, в котором подобная ситуация отрабатывает корректно. В чем может быть проблема? Я еще использую нумератор строк (rownumberer), который в случае с группировкой становится бесполезен, т к начинает отсчет не внутри группы, а берет общий со страницы. В итоге каша. Это как-то меняется или нет? Также все еще присутствует проблема, когда при перемещении по страницам нумерация идет с 1-цы: https://www.sencha.com/forum/showthr...ouping-Feature ExtJS 6.2.0.981 p.s. Надеюсь, что nohuhu не оставит данный пост без внимания :) |
Сделайте наглядный пример в Fiddle
|
Цитата:
|
Наконец сделал Fiddle.
https://fiddle.sencha.com/#view/editor&fiddle/1pu4 Какие есть проблемы:
|
Неужели никто не сталкивался?
|
Вот так работает
https://fiddle.sencha.com/#view/editor&fiddle/1re5 Закомментировал 45-ю строку //remoteSort: true, |
Ну оно так работает, конечно, но все же мне нужна сортировка на сервере. Я отправляю на бекенд необходимые данные, а в ответ уже весь массив данных отсортированный приходит.
Уже не помню какой глюк был неудобный с сортировкой на клиенте, из-за чего оказалось проще использовать `remoteSort: true`. |
1) по крайней мере видно, где скрыт баг. Посмотрите исходные коды. Сделайте патч.
2) возможно это проблема песочницы, надо проверить код вне песочницы |
Цитата:
|
Тогда надо копать код плагина features: [{ftype:'grouping'}],
Похоже будет жестко |
Теперь я напоролся на эту проблему)))
У меня почему-то первая запись из json выделяется в отдельную группу. В общем придется копать код плагина. Если будет желание - присоединяйся. Попробуем в онлайн режиме это решить. |
А сервер как должен обрабатывать запрос на группировку, кстати?
|
Он на сервер посылает параметр group
То есть сервер должен подготовить ответ, чтобы группировка нормально отработала на клиенте. Вот поэтому у тебя там пример не работает. |
Кстати, если отключить remoteSort: true то группировка работает без сервера... о как.
|
Цитата:
Я корректно на бекенде обрабатываю параметр group, более того сравнил работу с версией ExtJS 2.3 и убедился, что в старой либе все ок, а в 6.2 какие-то множественные баги с группировкой. Вам то удалось найти причину? Я пока тем проектом не занимаюсь, поэтому и на форум забыл заходить :) p.s. nohuhu, вся надежда на вас. На официальном форуме как всегда ответа не дождаться. |
Если сервер присылает отсортированный ответ, то группировка на клиенте работает нормально. Потому на сервер и отсылается параметр group, чтобы он знал как подготовить ответ. Но до конца доработать этот вариант не смог. Разработчики сервера решили вообще от группировок отказаться.
А так я заметил, что группировка начинает работать, если ответ сервера отсортирован по полю, по которому будет группировка включена. Вот и все что хотел сказать. |
Часовой пояс GMT +3, время: 17:34. |