最佳答案
Ext JS 目前不支持这种行为。我有这个完全相同的问题。这并不是真正的错误,因为源代码明确指出你不能这样做,但这似乎是网格的最大缺点之一(紧挨着锁定列)。
我的解决方案是覆盖 Ext.grid.ColumnLayout#completeLayout 4.1.0 中的方法。这是确定子项目(列)宽度的地方。您基本上要做的是获取网格可用的总宽度(可通过提供的布局/上下文对象获得)并在所有叶列上手动转换 flex->width 。然后,对于每组列,您可以对计算出的宽度求和并设置父级宽度。在 completeLayout
方法中执行此操作意味着它会在每个布局期间自动运行,因此您不必忙于观看调整大小事件等。
只要有一个好的调试器和足够的耐心,您就可以解决这个问题。我想发布一个代码示例,但我的解决方案大约有 100 行,并且是我工作代码的一部分。不过,我仍然可以指出一些注意事项:
如果您只需要支持 2 级 header ,则不必费心使整个方法递归 3 级以上。亚格尼。
注意隐藏的列。我相信有一个错误,隐藏的组标题没有在子列上设置隐藏属性。我的一个更常见的问题是,显示一个专栏会以奇怪的方式改变一切。
注意未密封的组。我通过密封每列来解决这个问题,但如果能够自由移动列是您要求的一部分,那么您可能需要采取额外的步骤。
老实说,最好的解决方案是将此作为功能请求提交到 Sencha 论坛,并询问他们为什么 Ext JS 库中仍然不存在如此重要的功能。
编辑: 将源代码发布到 Sencha support forums .
关于javascript - 分组标题列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401805/