访问相邻组件/字段的最佳方式

时间:2012-11-02 07:10:51

标签: extjs extjs4 extjs4.1

我正在寻找一种方法来访问组件/字段,这些组件/字段与访问组件相同,或者甚至只在同一父项数组中(最后一个只是一个选项)。

在ExtJS3中,只需在所有者容器中定义ref即可轻松实现,但我在ExtJS4中找不到类似内容。

我知道我可以使用Ext.ComponentQuery()或快捷方式up() / down()甚至是Ext.getCmp(),但它们都不是我想要的,因为它们只是执行一堆代码虽然ref是一种简单易行的方法。 是的,我知道使用ComponentQuery比使用硬编码引用要安全得多。但我只是想知道是否有其他方法可以做到这一点。

2 个答案:

答案 0 :(得分:9)

或者,对于获取容器中下一个元素的情况,您可以使用nextSiblingprevSibling。所有组件都有这些方法。在DOM结构周围走动会少一些。它们还允许选择器参数。

文档here中描述了它们。

答案 1 :(得分:6)

以下是我使用的一些技巧:

//lookup by name
formPanel.getForm().findField('state'); 

//lookup using nextSibling/prevSibling in a fieldset or fieldcontainer
myField.ownerCt.nextSibling('textfield[fieldLabel=Description]')

此处fieldLabel属性用于缩小字段选择范围,但您可以使用任何属性。因此,如果您使用属性ref构建一个字段,则可以使用它来选择与您在ComponentQuery中使用它的字段类似的字段。