在ExtJs 3中,在Afterrender事件被触发后,组件会发生什么?

时间:2011-05-06 15:02:09

标签: javascript extjs

在我的ExtJs 3应用程序中,我有一个ListView组件,它位于窗口内,布局“合适”。

在ListView的Afterrender事件被触发后,我检查该ListView引用的el元素的高度为200.但如果我将高度检查延迟1ms(因此让其他一些ExtJs事件发生),ListView的高度为el是不同的(在我的情况下是370)。

那么在Afterrender被解雇后ListView的高度会发生什么?在所有事情都解决之后,不应该解雇吗?

2 个答案:

答案 0 :(得分:0)

我不知道如何回答你的问题。但也许您可以尝试Window的afterLayout事件,看看是否有效。我不确定会不会呢?

答案 1 :(得分:0)

一旦呈现组件,就会调用“Afterrender”。它与数据无关 - 因此,即使未呈现该列表中的数据,也会调用afterrender。所以,可能你有两个高度,因为数据仍在渲染。

来自API Doc的Afterrender事件:

在此组件{@link #rendered}之后触发afterrender事件,由为组件定义的任何afterRender方法进行postprocesed,并且,如果{@link #stateful},则在状态恢复之后。