ExtJs练习.docx
《ExtJs练习.docx》由会员分享,可在线阅读,更多相关《ExtJs练习.docx(17页珍藏版)》请在冰豆网上搜索。
ExtJs练习
1.ExtTabPanel用法:
Ext.onReady(function(){
varpanel=newExt.TabPanel({
renderTo:
Ext.getBody(),
width:
200,
height:
300,
items:
[
newExt.Panel({
title:
'西门吹雪',
html:
'一身白雪,独剑江湖'
}),
newExt.Panel({
title:
'郭襄',
html:
'一人一驴,潇湘剑雨'
})
],
bbar:
[{text:
'关闭'}],
tbar:
[{text:
'文件'}],
buttons:
[{text:
'底部啊'}]
});
});
2.属性items的用法:
xtype
Ext.onReady(function(){
varpanel=newExt.Panel({
renderTo:
Ext.getBody(),
title:
'Youthefuckinggirl',
width:
400,
height:
500,
items:
[
{xtype:
'htmleditor'}
]
});
});
3.布局控件
ExtJS的布局基类为Ext.layout.ContainerLayout其他布局都是集成该类的。
ExtJs的容器组件包含一个layout及layoutConfig配置属性。
如果没有指定容器组件的layout,则默认会使用ContainerLayout作为布局,该布局只是简单的把元素放到容器中,有的布局需要layoutConfig配置,有的则不需要layoutConfig配置。
(1)列的布局
Ext.onReady(function(){
varpanel=newExt.Panel({
renderTo:
Ext.getBody(),
width:
400,
height:
500,
layout:
'column',
items:
[
{
columnWidth:
0.5,
title:
'面板1'
},
{
columnWidth:
0.5,
title:
'面板2'
}
]
});
});
(2)Border布局
由Ext.layout.BorderLayout定义,布局名为:
border
该布局把容器分为:
东南西北中五个区域。
分别由east,south,west,north,center来表示。
在往容器中添加子元素的时候,我们只需指定这些子元素所在的位置,Border布局会自动把子元素放到布局指定的位置。
Ext.onReady(function(){
varviewport=newExt.Viewport({
renderTo:
Ext.getBody(),
layout:
'border',
items:
[{
title:
'north',
region:
'north',
split:
true,
border:
true,
collapsible:
true,
height:
100,
minSize:
100,
maxSize:
120
},
{
title:
'south',
region:
'south',
split:
true,
border:
true,
collapsible:
true,
height:
100,
minSize:
100,
mxaSize:
120
},
{
title:
'east',
region:
'east',
split:
true,
border:
true,
collapsible:
true,
width:
120,
minSize:
120,
mxaSize:
200
},
{
title:
'west',
region:
'west',
split:
true,
border:
true,
collapsible:
true,
width:
120,
minSize:
120,
mxaSize:
200
},
{
title:
'center',
region:
'center',
split:
true,
border:
true,
collapsible:
true
}]
});
});
(3)Table布局
由类Ext.layout.TableLayout定义。
名称:
table该布局负责把容器中的子元素按照类似普通html标签,看代码:
Ext.onReady(function(){
varpanel=newExt.Panel({
renderTo:
Ext.getBody(),
title:
'容器组件',
width:
500,
height:
200,
layout:
'table',
layoutConfig:
{columns:
3},
items:
[
{
title:
'子元素1',
html:
'此为子元素1中的内容',
rowspan:
2,
height:
100
},
{
title:
'子元素2',
html:
'这是子元素2的内容',
colspan:
2
},
{
title:
'子元素3',
html:
'这是子元素3的内容'
},
{
title:
'子元素4',
html:
'这是子元素4的内容'
}
]
});
});
4.表格控件
表格由类Ext.grid.GridPanel定义,继承自Panel,其xtype为grid.
在Extjs中,表格Grid必须包含列定义信息,并指定表格的数据存储器Store。
表格的列信息由类Ext.grid.ColumnModel定义,而表格的数据存储器由Ext.data.Store定义。
数据存储器解析的数据不同分为:
Jsonstore、SimpleStore、GroupingStore等,
如下代码:
Ext.onReady(function(){
//定义列
varcm=newExt.grid.ColumnModel([
{header:
'编号',dataIndex:
'id'},
{header:
'名称',dataIndex:
'name'},
{header:
'描述',dataIndex:
'descn'}
]);
//数据定义
vardata=[['1','name1','descn1'],
['2','name2','descn2'],
['3','name3','descn3'],
['4','name4','descn4'],
['5','name5','descn5']];
//数据源定义
vards=newExt.data.Store({
proxy:
newExt.data.MemoryProxy(data),
reader:
newExt.data.ArrayReader({},[
{name:
'id'},
{name:
'name'},
{name:
'descn'}
])
});
ds.load();
vargrid=newExt.grid.GridPanel({
renderTo:
Ext.getBody(),
ds:
ds,
cm:
cm,
width:
300,
autoHeight:
true
});
});
5.树形控件
树控件由Ext.tree.TreePanel类定义,控件的名称为:
treepanel继承自Panel面板。
如下代码:
Ext.onReady(function(){
varroot=newExt.tree.TreeNode({
id:
'root',
text:
'树的根'
});
root.appendChild(newExt.tree.TreeNode({
id:
'c1',
text:
'子节点1'
}));
root.appendChild(newExt.tree.TreeNode({
id:
'c2',
text:
'子节点2'
}));
vartree=newExt.tree.TreePanel({
renderTo:
Ext.getBody(),
root:
root,
width:
100
});
});
6.表单控件Form
表单在web应用中处于非常重要的地位,时刻都在使用表单收集用户信息与交互,并将收集到的有用信息提交到后台服务器。
表单是客户端与服务器之间通信的主要桥梁。
如下代码:
......
7.弹出窗口
(1)Ext.MessageBox.alert();
如下代码:
Ext.onReady(function(){
Ext.MessageBox.alert('标题','内容',function(btn){
alert('你刚刚点击了'+btn);
});
});
(2).Ext.MessageBox.confirm()
如下代码:
Ext.onReady(function(){
Ext.MessageBox.confirm('选择款','你到底是选择了yes还是no?
',
function(btn){
alert('你刚刚点击了'+btn);
});
});
(3).Ext.MessageBox.prompt()//prompt:
迅捷的,迅速的,按时的;提示
如下代码:
Ext.onReady(function(){
Ext.MessageBox.prompt('输入框','随便输入一些东西',function(btn,text){
alert('你点击了'+btn+',并输入了:
'+text);
});
});//在prompt()中添加两个参数,this,ture.this:
作用域
ture:
多行
可以输入多行的输入框:
如下代码:
Ext.onReady(function(){
Ext.MessageBox.show({
title:
'多行输入框',
msg:
'你可以输入好几行',
width:
300,
buttons:
Ext.MessageBox.OKCANCEL,
multiline:
true,
fn:
function(btn,text){
alert('你刚点击了'+btn+',并输入了:
'+text);
}
});
});
再比如:
Ext.onReady(function(){
Ext.MessageBox.show({
title:
'随便选择一个按钮',
msg:
'从三个按钮选择',
width:
300,
buttons:
Ext.MessageBox.YESNOCANCEL,
fn:
function(btn,text){
alert('你刚点击了'+btn);
},
animEl:
'dialog'
});
});
弹出一个window
Ext.onReady(function(){
varwin=newExt.Window({
title:
'人员信息',
closable:
true,
width:
600,
height:
350,
minimizable:
true,
maximizable:
true,
layout:
'fit',
tools:
[{id:
'save'},{id:
'unpin'},{id:
'plus'}],
items:
[{}]
});
win.show(this);
});
进度条ProgressBar:
Ext.onReady(function(){
varpbar=newExt.ProgressBar({
id:
'pbar',
width:
300,
renderTo:
Ext.getBody()
});
pbar.wait({
interval:
100,
increment:
15,
duration:
5000,
text:
'加载中,请稍候...'
});
varbtn=newExt.Button({
text:
'停止',
handler:
function(){pbar.reset();
pbar.updateText('强制结束');
},
renderTo:
Ext.getBody()
});
});
表单练习:
1.文本框
Ext.onReady(function(){
varform1=newExt.form.FormPanel({
width:
350,
height:
400,
frame:
true,
renderTo:
'win',
title:
'formpanel',
bodyStyle:
'padding:
5px5px0',
items:
[
{
fieldLabel:
'Username',
xtype:
'textfield',
name:
'user',
id:
'user',
width:
'200'
},
{
fieldLabel:
'PWD',
xtype:
'textfield',
name:
'pass',
id:
'pass',
width:
'200'
}
]
});
});
2下拉框combox组件
Ext.onReady(function(){
varform1=newExt.form.FormPanel({
width:
350,
height:
400,
frame:
true,
renderTo:
'win',
title:
'formpanel',
bodyStyle:
'padding:
5px5px0',
items:
[
{
xtype:
'fieldset',
title:
'个人信息',
collapsible:
true,
autoHeight:
true,
width:
330,
defaults:
{width:
150},
defaultType:
'textfield',
items:
[
{
fieldLabel:
'爱好',
name:
'hobby',
value:
''
},
{
xtype:
'combo',
name:
'sex',
store:
['男','女','保密'],
fieldLabel:
'性别',
emptyText:
'请选择性别'
}
]
}
]
});
});
关于xtype的类型,在extjs的form表单
Form components
---------------------------------------
form Ext.FormPanel
checkbox Ext.form.Checkbox
combo Ext.form.ComboBox
datefield Ext.form.DateField
field Ext.form.Field
fieldset Ext.form.FieldSet
hidden Ext.form.Hidden
htmleditor Ext.form.HtmlEditor
label Ext.form.Label
numberfield Ext.form.NumberField
radio Ext.form.Radio
textarea Ext.form.TextArea
textfield Ext.form.TextField
timefield Ext.form.TimeField
trigger Ext.form.TriggerField