动态更改 ExtJS 6 仪表板中的列宽

Dynamically change column widths in ExtJS 6 dashboards

有没有办法在 Ext.dashboard.Dashboard 呈现后更改列宽?它是使用以下配置值创建的:

columnWidths: [
    0.35,
    0.40,
    0.25
]

我想动态改成:

columnWidths: [
    0.5,
    0.25,
    0.25
]

直接更改 columnWidths 属性 或使用 setConfig 不会更新仪表板。它似乎没有用于 "refresh" 的方法或任何其他明显用于相同目的的方法。各个仪表板列具有 setWidth 功能,但似乎也没有任何作用。

我在 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();
}

» Fiddle