昨天调试代码,老是获取不到tbar中的按钮,今天正好看到一篇博文,总结一下:
情况一
环境:login窗体
步骤:打开浏览器控制台,输入一下命令,回车
Ext.ComponentQuery.query('button');
出现6个按钮,继续尝试:
Ext.ComponentQuery.query('login form button');
出现2个按钮,继续尝试:
Ext.ComponentQuery.query('login form button#submit');
出现Submit按钮,同理
Ext.ComponentQuery.query('login form button#cancel');
出现取消按钮。
情况二(来自一篇博文)
如果想给gridPanel中tbar中的按钮添加事件,那么必须要获得这个按钮。
是否想使用: aGrid.findByType('aButton')[0] ?
使用的结果是报错,说 这个变量不存在。
怎么回事?
原来:
gridPanel虽然是一个Container,可以使用findByType()方法,但是,tbar中的按钮并不属于grid,而且,tbar也不是grid的item,没有包含关系。
所以,我们如果想给tbar中的第一个按钮添加事件,就需要:
aGrid.getTopToolbar().findByType('button')[0].on('click',this.onClick,this);