EXTJS4自学手册——EXT对象选择

一、Ext对象分为3种:htm控件,EXTJS元素,EXTJS组件

二、Ext选择对象的方法:

  选择html控件:Ext.getDom(对象的ID)

  选择EXT元素:Ext.get(对象的ID)     

  选择EXT组件:Ext.getCmp(对象的ID)

例子1(Ext.getDom和Ext.get方法):

复制代码
<html>
<head>
<title>Index</title>
<link href="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/resources/css/ext-all.css"
rel
="stylesheet" type="text/css" />
<script src="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/ext-all-dev.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(
function () {
//通过Ext.get方法获取第一个文本框对象,返回的是Ext元素
Ext.get("text1").set({
value:
'Ext.get方法获取的Ext元素'
});
//通过Ext.getDom方法获取第二个文本框对象,返回的是html控件
Ext.getDom("text2").value = "Ext.getDom方法获取的html控件";
//通过Ext.get方法获取第三个文本框对象,返回的是Ext元素,通过Ext元素的dom属性,返回html控件
//注:通过EXT元素的dom属性,可以将EXT元素转换为对应的html控件
Ext.get("text3").dom.value = "Ext.get方法获取的Ext元素,通过dom属性转化为html控件"
});

</script>
</head>
<body>
<div id="Ext4-Panel">
输入框1:<input type="text" id="text1" style="width:400px"/><br />
输入框2:<input type="text" id="text2" style="width:400px"/><br />
输入框3:<input type="text" id="text3" style="width:400px"/><br />
<input type="button" id="show" value="展示选择结果" />
</div>
</body>
</html>
复制代码

执行结果:

例子2(Ext.getCmp方法):

首先,我们使用Ext.panel.Panel组件创建一个panel

复制代码
<html>
<head>
<title>Index</title>
<link href="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/resources/css/ext-all.css"
rel
="stylesheet" type="text/css" />
<script src="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/ext-all-dev.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(
function () {
//创建一个panel
Ext.create("Ext.panel.Panel", {
//id
id:'myPanel',
//标题
title: 'Ext的panel组件',
//渲染到id为“ExtComponent”的<div>标签
renderTo: 'ExtComponent',
//
width: 300,
//
height:300
})
});

</script>
</head>
<body>
<div id="ExtComponent">

</div>
</body>
</html>
复制代码



执行结果:

通过getCmp方法获取生产的panel组件,改变他的标题

            //通过Ext.getCmp方法获取组件,改变组件的标题
Ext.getCmp("myPanel").setTitle("使用getCmp获取组件")

执行结果:

 

注:Ext组件一般有一个方法可以把当前组件转换为Ext元素,如From组件的getForm方法,textfield组件的getEl()方法,详见EXT文档

 

三、通过CSS语法选择EXT组件

说明:在EXTJS4中,提供了query方法,通过CSS语法,查询EXTJS4组件

注:query方法返回的是一个对象集而不是单个对象

例子:

首先,我们定义一个页面:

复制代码
<html>
<head>
<title>Index</title>
<link href="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/resources/css/ext-all.css"
rel
="stylesheet" type="text/css" />
<script src="http://www.cnblogs.com/Scripts/ext-4.0.7-gpl/ext-4.0.7-gpl/ext-all-dev.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(
function () {
//创建一个panel
Ext.create("Ext.panel.Panel", {
//标题
title: '第一个panel',
//渲染到id为“myPanel1”的<div>标签
renderTo: 'myPanel1',
//
width: 300,
//
height: 100,
items: [{
//这个panel包含一个textfield组件
xtype: 'textfield',
name:
'name',
fieldLabel:
'Name'
}, {
//这个panel包含一个textfield组件
xtype: 'textfield',
name:
'age',
fieldLabel:
'Age'
}]
})
//创建一个panel
Ext.create("Ext.panel.Panel", {
//标题
title: '第二个panel',
//渲染到id为“myPanel2”的<div>标签
renderTo: 'myPanel2',
//
width: 300,
//
height: 150,
items: [{
//这个panel包含另一个panel
xtype: 'panel',
height:
'50',
items: [{
//被包含的panel包含一个textfield组件
xtype: 'textfield',
name:
'telephone',
fieldLabel:
'Telephone'
}]
}, {
//这个panel包含一个textfield组件
xtype: 'textfield',
name:
'address',
fieldLabel:
'address'
}]
})
});
</script>
</head>
<body>
<div id="myPanel1">
</div>
<div id="myPanel2">
</div>
</body>
</html>
复制代码

执行结果:

获取第一个panel,通过panel的title属性:

Ext.ComponentQuery.query("panel [title=第一个panel]")[0]

获取第一个textfield:

Ext.ComponentQuery.query("textfield")[0];

注意:第一个textfield组件并不是标题为name的那个文本框(第三个才是),这是应为EXT框架会根据需要自动生成一些组件,所以在选择特定组件的时候,最好不要通过索引,而是通过特定的属性

 

获取标题为name的textfield控件

Ext.ComponentQuery.query('textfield[name=name]')


获取标题为“第二个panel”的panel组件下面的所有textfiled组件

Ext.ComponentQuery.query('panel[title=第二个panel] textfield')

 

获取标题为“第二个panel”的panel组件下一层的所有textfiled组件

Ext.ComponentQuery.query('panel[title=第二个panel]>textfield')

 

四、up、down、child方法

说明:

up:根据CSS语法获取当前组件上层的控件,如果有多个符合条件,只返回第一个

down:根据CSS语法获取当前组件下层的控件,如果有多个符合条件,只返回第一个

child:根据CSS语法获取当前组件下一层的控件,如果有多个符合条件,只返回第一个

例子:

采用讲述query方法时使用的页面

up方法:

           //获取属性name为telephone的textfield组件
var t = Ext.ComponentQuery.query("textfield[name=telephone]")[0]
//获取组件t上面的第一个panel组件
t.up("panel");

child方法:

            //获取属性title为"第二个panel"的panel组件
var t = Ext.ComponentQuery.query("panel[title=第二个panel]")[0]
//获取组件t下面一层的属性name为“address”的textfield组件
t.child("textfield[name=address]");

 

down方法:

         //获取属性title为"第二个panel"的panel组件
var t = Ext.ComponentQuery.query("panel[title=第二个panel]")[0]
//获取组件t下面一层的属性name为“address”的textfield组件
//注意,用child方法时无法取到了,因为child方法只能取组件t下面一层的控件
t.down("textfield[name=telephone]");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值