gpt4 book ai didi

javascript - Extjs:强制组件重新渲染

转载 作者:可可西里 更新时间:2023-11-01 02:26:53 24 4
gpt4 key购买 nike

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

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

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

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

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

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

最佳答案

您是否尝试过调用“doLayout”方法来确保正确重新应用尺寸?重新渲染在 Extjs 中并不常见,通常 doLayout 可以解决问题。如果没有,则您的实现本身可能有问题。

关于javascript - Extjs:强制组件重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com