【发布时间】:2014-04-20 18:21:47
【问题描述】:
我在 ExtJs 中有一个自定义组件,它是一个表单域 (GridField)。它将网格显示为表单字段并按预期工作。观察结果如下:
当表单单独呈现时(例如,在窗口或卡片布局的第一个面板中,一切都显示得很好)
当表单不是卡片布局中的第一个面板或在第一次呈现时隐藏时,会显示字段名称并留下所需的空间,但不会显示控件。
我做了一些检查,发现自定义组件实际上已呈现,但所有 html 元素(div 等)的宽度均为 0。它们都具有样式(宽度:0)。我的猜测是,这是因为在渲染完成时表单面板不可见。
在控件的实现方面,我扩展了Ext.form.field.Base。在initComponent 中,我只需调用this.on('afterrender', this.initControl) 即可在渲染后运行自定义代码以获取附加控件。这里input 字段被隐藏,并且网格被渲染到它应该在的位置。
我的问题是 1.如何强制控件重新渲染,使宽度不再为0? 2.如果当前的实现是错误的,那么使用grid或其他ext组件作为表单域的正确方法是什么?
【问题讨论】:
-
您的问题的答案在这里:stackoverflow.com/a/7665964/1763602
标签: javascript extjs extjs4 extjs4.2