Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2015, 19:16
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Ext.grid.column.Column.setSortable()
У компонента

http://docs.sencha.com/extjs/5.1/5.1....column.Column

нет метода Ext.grid.column.Column.setSortable()

А кто-то тут говорил, что на весь конфиг любого компонента есть методы get и set.

И как в этом случае на ходу выключить возможность сортировки в определенной колонке?

Последний раз редактировалось khusamov, 05.07.2015 в 23:46.
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2015, 23:13
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Ответ на первый вопрос:

Getters/setters генерируются автоматически для свойств объекта config, если таковой имеется. Однако большая часть конфигурационных опций в Ext JS аксессоров не имеет, т.к. является просто свойствами объекта без какой-либо магии.

Код:
Ext.define('Foo', {
    config: {
        /**
         * @cfg {String} bar будет иметь getBar(), setBar(), etc
         */
        bar: 'qux'
    },

    /**
     * @cfg {String} throbbe это просто свойство, аксессоров нет
     */
    throbbe: 'blerg'
});
Если посмотрите в код фреймворка, то увидите кучу таких вот документационных вставок. Всё это добро идёт с незапамятных времён, когда config system ещё не было, а жить как-то надо было. :)

В общем случае мы стараемся все новые опции добавлять в блоки config, но старые опции, которые существовали до Ext JS 5.0, остались как были для совместимости.

Ответ на второй вопрос: судя по коду Column, динамического переключения sortable не предусмотрено.
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2015, 16:44
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

да уж... тяжелое наследие...

Получается чтобы переключить sortable придется делать клон колонки, удалять старую, вставлять новую?
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2015, 20:25
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Технически да, надо заменить старую колонку на новую. С точки зрения практики всё проще, потому что всё уже украдено до нас:

grid.reconfigure(/* new_store = */ null, [new_columns]);


Можно даже new_columns сгенерировать из уже имеющихся, пройдя по ним в цикле и запросив initialConfig. Решение этой задачи оставлю на усмотрение читателя. ;)
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2015, 21:23
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

К сожалению не работает этот метод для класса Ext.grid.property.Grid

Код в песочнице https://fiddle.sencha.com/#fiddle/q11 (при клике по любой ячейке появляется ошибка Cannot read property 'getVisibleGridColumns' of undefined)

Да уж... накопилось столько проблем с этим Ext.grid.property.Grid, что проще похоже сделать все таки свой.
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2015, 00:01
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Ну, сделайте свой, если так проще будет. ;)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск