gpt4 book ai didi

javascript - 应用 flex 时如何在 ExtJS 4 中使用 grid.columns[index].setWidth(width) 调整列的大小?

转载 作者:行者123 更新时间:2023-11-29 10:44:20 30 4
gpt4 key购买 nike

强调文本panel.Grid 中的列宽度使用 width 属性设置时,列的大小由 grid.columns[ index].setWidth(width) 正常工作。但是当列的宽度由 flex 设置时,此代码不起作用。

只是说清楚:我正在尝试同步两个网格上的列调整大小/移动/隐藏/等事件。

因此两个网格具有基本相同的列:

me.columns = {
defaults: {
renderer: tooltipRenderer
},
items: [
{
header: "product",
dataIndex: 'product',
groupable: false,
flex: 1
},

{
header:'Value',
dataIndex: 'vlue',
align: 'right',
renderer: Ext.util.Format.numberRenderer('0,000.00'),
summaryType: 'remote',
summaryRenderer: Ext.util.Format.numberRenderer('0,000.00'),
groupable: false,
flex: 1
}
]
};

来自插件的代码同步列大小调整:

firstGrid.on('columnresize', function (ct, column, width) {
console.log('fgrid: ' + width + ' column name: ' + column.dataIndex);
secondGrid.columns[column.getIndex()].setWidth(width);
}, firstGrid);

secondGrid.on('columnresize', function (ct, column, width) {
console.log('sGrid: ' + width + ' column name: ' + column.dataIndex);
firstGrid.columns[column.getIndex()].setWidth(width);
}, secondGrid);

所以,我现在拥有的是:当我在一个网格中调整宽度由 flex 设置的列时,与另一网格对应的列不会改变它的宽度,但是如果在一个网格中调整列的大小后我从另一个调整大小一切正常。我希望这个描述不会太奇怪。

最佳答案

您不应该在其宽度由布局管理的对象上设置宽度。如果删除该列的 flex 属性,则 setWidth 有效 https://fiddle.sencha.com/#fiddle/4b4

我的例子切换了 flex 属性,所以你可以设置宽度,尝试点击页面,你会看到 flexed 列改变宽度

// Assume you have a variable gridwhere the second column is flexed.
Ext.getBody().on('click', function() {
var emailCol = grid.query('gridcolumn')[1];
if (emailCol.flex) {
delete emailCol.flex;
emailCol.setWidth(100);
} else {
emailCol.flex = 1;
grid.doLayout();
}
});

关于javascript - 应用 flex 时如何在 ExtJS 4 中使用 grid.columns[index].setWidth(width) 调整列的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484174/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com