0

如何:在 Ext JS4 中自动调整 GridPanel 列宽 + 读取网格中的所有列值

问题1:无论如何我可以根据重新调整的列数据值长度(列宽=最大数据值字符串长度)自动设置gridpanel列宽

问题 2:为了达到上述目的(以及其他原因),我需要知道如何获取特定网格列的值?一旦我知道逻辑,是否应该将其实现为列渲染器功能?每次都会调用列渲染器函数,读取数据记录(然后是过度杀伤)吗?在这种情况下,我可以覆盖任何其他函数吗?

我在网上找到的大多数解决方案(网格列宽计算器、autoResizeColumns 等)都是针对以前版本的,我使用的是 EXTJS 4 版本。

在此先感谢斯科特

4

3 回答 3

1

实际上有一个 Extjs 4 插件可以根据内容的宽度以及标题自动调整网格列的大小。

这是链接:Extjs 4 column auto resize plugin

于 2013-02-20T15:24:22.697 回答
0
  1. 抱歉不行。您最好的选择是为通常固定的数据设置指定的宽度,然后使用flex. (或写/等待插件)。

  2. 值不存储在 中grid,它们在grid'sstore中。您只需要循环有store问题的内容并从指定列中获取所有值。例如:

    Ext.Array.each(Ext.StoreManager.get('myStore').getRange(0), function(record){
        console.log(record.get("myColumnName")); 
    });
    
于 2011-08-31T02:39:54.630 回答
0

我找到了使用 CSS 包装列的临时修复方法,如下所述: ExtJS 4 - 在网格面板中包装列标题

将以下内容添加到 ext js css

.x-column-header-inner {
    line-height: normal;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
    text-align: center;
    top: 20%;
}

.x-column-header-inner .x-column-header-text {
    white-space: normal;
}
于 2011-09-22T09:04:55.043 回答