Ext.ComponentQuery用法

简介:
/**
* Ext.ComponentQuery用法
*/
Ext.onReady(function() {
var panel = Ext.create("Ext.container.Viewport", {
items : [{
width : 400,
height : 300,
title : 'panel1',
ref : 'panel1',
items : [{
xtype : 'button',
text : 'p1btn1',
ref : 'btn1'
}, {
xtype : 'button',
text : 'p1btn2',
id : 'btn2',
ref : 'btn2'
}]
}, {
width : 400,
height : 300,
title : 'panel2',
ref : 'panel2',
items : [{
xtype : 'button',
text : 'p2btn1',
ref : 'btn1'
}]
}]
});
// 通过xtype得到组件,如果是多个类别,可以逗号隔开,如:'gridpanel,treepanel'
// var items = Ext.ComponentQuery.query('panel,button',panel);
// 通过ID获得组件:#ID
// var items = Ext.ComponentQuery.query('#btn2',panel);
// 获得panel下的所有button,这个需要注意,button必须在panel下的第一层,如果中间跨层是找不到的,如:'viewport>button'是找不到button的,因为中间有一层panel
// var items = Ext.ComponentQuery.query('panel>button',panel);
// 通过组件的属性来查找
// var items = Ext.ComponentQuery.query('button[id=btn2]',panel);

/**
* 以上是Ext.ComponentQuery使用的几种情况,在ExtJS4中所有的组件都有一个query方法,这个方法就是ComponentQuery的实现。不过,
* 我们在开发中真正用的时候,还是用组件的query方法,比较方便。
* 还有就是ref属性,这个在 extjs4 没有了,使得我们操作起来不想以前那么方便了,不过,我们还是可以再这个属性用作在一个容器内,各个组件的唯一标识,这样的话也避免了ID的重复,
* 下面我就简单的写一下,如果大家有什么问题,或者是好的方式。欢迎到家给我留言。我们一起学习,共同进步,谢谢。
*/

// 在容器panel里,通过ref查找panel2下的btn1
var items = panel.query('panel[ref=panel2]>button[ref=btn1]');
Ext.Array.each(items, function(d) {
alert(d.ref + '--' + d.text + '--' + d.getXType());
})

})














本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1310794,如需转载请自行联系原作者

相关文章
|
5月前
Ext简单示例
Ext简单示例
|
JavaScript 前端开发 API
|
Web App开发 JavaScript 前端开发
|
Web App开发 前端开发 JavaScript
《Ext JS实战》——2.2 Ext.Element类
这个getElementById方法很好用,可以执行一些类似改变innerHTML的内容,或者美化和配置一个CSS类这样的基本任务。不过要是想对该节点做更多的事情,例如管理它的事件,在有鼠标点击时应用某个样式,或者替换一个CSS类?必须自己管理全部代码,还要不断地对代码进行更新,以保证能够全部浏览器的兼容性。
1705 0