Динамическое изменение ширины столбцов на информационных панелях ExtJS 6

Есть ли способ изменить ширину столбцов в Ext.dashboard.Dashboard после рендеринга? Он создается со значением конфигурации:

columnWidths: [
    0.35,
    0.40,
    0.25
]

Я хочу динамически изменить его на:

columnWidths: [
    0.5,
    0.25,
    0.25
]

Изменение свойства columnWidths напрямую или с помощью setConfig не приводит к обновлению панели мониторинга. Похоже, у него нет метода «обновления» или чего-либо еще, что явно служит той же цели. Отдельные столбцы приборной панели имеют функцию setWidth, но, похоже, она тоже ничего не делает.


person Tulvan    schedule 20.01.2016    source источник
comment
В каком случае вы хотите изменить ширину столбца? Вы хотите изменить при изменении размера экрана?   -  person Mohit Saxena    schedule 21.01.2016
comment
Мой вариант использования на самом деле представляет собой меню с предустановками, такими как установка для всех столбцов одинаковой ширины, чтобы пользователь мог быстро выровнять или выровнять все столбцы и/или виджеты.   -  person Tulvan    schedule 21.01.2016


Ответы (1)


Я не смог найти ничего в API, который управлял бы этим автоматически, но вы можете вручную обновить значения columnWidth каждого дочернего компонента на панели управления, а затем вызвать updateLayout:

function setColumnWidths(dashboard, columnWidths){
    var i = 0;
    dashboard.items.each(function(item){
        if(item instanceof Ext.resizer.Splitter)
            return; // ignore
        item.columnWidth = columnWidths[i++] || 1;
    });
    dashboard.updateLayout();
}

скрипка

person Emissary    schedule 23.01.2016