Ext.grid.column.Column.setSortable()
У компонента
http://docs.sencha.com/extjs/5.1/5.1....column.Column нет метода Ext.grid.column.Column.setSortable() А кто-то тут говорил, что на весь конфиг любого компонента есть методы get и set. И как в этом случае на ходу выключить возможность сортировки в определенной колонке? |
Ответ на первый вопрос:
Getters/setters генерируются автоматически для свойств объекта config, если таковой имеется. Однако большая часть конфигурационных опций в Ext JS аксессоров не имеет, т.к. является просто свойствами объекта без какой-либо магии. Код:
Ext.define('Foo', { В общем случае мы стараемся все новые опции добавлять в блоки config, но старые опции, которые существовали до Ext JS 5.0, остались как были для совместимости. Ответ на второй вопрос: судя по коду Column, динамического переключения sortable не предусмотрено. |
да уж... тяжелое наследие...
Получается чтобы переключить sortable придется делать клон колонки, удалять старую, вставлять новую? |
Технически да, надо заменить старую колонку на новую. С точки зрения практики всё проще, потому что всё уже украдено до нас:
grid.reconfigure(/* new_store = */ null, [new_columns]); Можно даже new_columns сгенерировать из уже имеющихся, пройдя по ним в цикле и запросив initialConfig. Решение этой задачи оставлю на усмотрение читателя. ;) |
К сожалению не работает этот метод для класса Ext.grid.property.Grid
Код в песочнице https://fiddle.sencha.com/#fiddle/q11 (при клике по любой ячейке появляется ошибка Cannot read property 'getVisibleGridColumns' of undefined) Да уж... накопилось столько проблем с этим Ext.grid.property.Grid, что проще похоже сделать все таки свой. |
Ну, сделайте свой, если так проще будет. ;)
|
Часовой пояс GMT +3, время: 21:12. |