关于extjs4.2:自动调整包含自定义ExtJS 4.2表单字段的容器面板的大小?

 2021-04-09 

Automatic resizing of container panel containing custom ExtJS 4.2 form field?

我有一个基于Ext.form.field.Base的自定义字段组件。我从这篇文章中得到了一个好主意。但是令我困扰的是该解决方案的高度固定。我想拥有的是,当我向网格中添加条目时,容器的高度会增加。

我已经尝试过创建一个这样的字段,但是基于包含网格和按钮的Panel。将该面板放入vbox布局中,并向网格中添加行,以完美调整容器表单面板的大小。我错过了什么来实现容器将要调整的大小?

这是一个小提琴,在这里您应该很容易理解我的意思:
http://jsfiddle.net/amx9j/


我终于开始工作了!

在此处查看此小提琴:http://jsfiddle.net/amx9j/3/

form的此配置有效:

1
2
3
4
5
6
7
8
9
10
layout: {
    type: 'vbox',
    align: 'stretch'
},
items: [{
    xtype: 'container',
    layout: 'anchor',
    items: [{
        //custom fields that change their height
}]

并且在自定义字段中,每次您希望高度发生变化时,都必须使用this.updateLayout()。另外,我还必须实现onResize方法:

1
2
3
4
onResize: function(w, h) {
    this.callParent(arguments);
    this.grid.setWidth(w - this.getLabelWidth());
}

重要的是,不要设置网格的高度;-)

感谢@Peter花时间研究这个问题!