繁体   English   中英

Extjs:强制组件重新渲染

[英]Extjs: Force a component to re-render

我在ExtJs中有一个自定义组件,它是一个表单字段(GridField)。 它将网格显示为表单字段并按预期工作。 观察结果如下:

  1. 单独呈现表单时(例如,在窗口或卡片布局中的第一个面板中,一切都显示正常)

  2. 如果表单不是卡片布局中的第一个面板或在第一次呈现时隐藏,则显示字段名称并保留所需的空间但控件不显示。

我做了一些检查,发现实际渲染了自定义组件,但所有html元素(div等)的宽度都是0.它们都有样式(宽度:0)。 我的猜测是因为表单面板在渲染完成时不可见。

在控件的实现方面,我扩展了Ext.form.field.Base initComponent ,我只需调用this.on('afterrender', this.initControl)来在渲染后运行附加控件的自定义代码。 这里input字段被隐藏,网格呈现在它应该的位置。

我的问题是1.如何强制控件重新渲染,使宽度不再为0? 2.如果当前实现错误,使用网格或其他ext组件作为表单字段的正确方法是什么?

您是否尝试调用“doLayout”方法以确保正确重新应用维度? 重新渲染在Extjs中并不常见,通常doLayout可以解决问题。 如果没有,那么您的实现本身可能会有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM