ExtJS2.0开发与实践笔记[1]——ExtJS中的Dialog与Form

本文通过实例演示了ExtJS 2.0中Dialog与Form组件的应用,包括消息框、确认对话框、输入提示及进度条等功能,并介绍了简单的表单创建方式。

ExtJS2.0中提供了一整套的web表示层UI解决方案,令我们可以非常轻易的实现平时较为复杂的javascript操作,在此我以表示层开发中使用较多的Dialog与Form功能进行一次ExtJS2.0的实现演示。

ExtJS2.0的配置及运行方式请参阅 ExtJS2.0开发与实践笔记[0]-初识ExtJS

DialogExt.js (此中包含了ExtJS的确定,分支选择,进度条,输入框等四个应用实例)
/**/ /**
*
*/

var DialogExt = function () ... {
/**//**
*追踪输出
*@param{Object}str
*/

vartrace=function(str)...{
//在ExtJS2.0中,log由Ext统一调度
Ext.log(str);
}
;
//设置Ext.Button别名为Button
varButton=Ext.Button;
//设置Ext.MessageBox别名为MessageBox
varMessageBox=Ext.MessageBox;

//变量设置,用于保存DialogExt自身及当中键钮
varroot;
varbtn0;
varbtn1;
varbtn2;
varbtn3;

//返回操作
return...{
//初始化函数
init:function()...{
//设定root等于this
root=this;
//生成Ext按钮,绑定数据到Element,renderTo为绑定的按钮名,text为输出内容
btn0=newButton(...{renderTo:'a',text:'确定选项'});
btn1
=newButton(...{renderTo:'b',text:'yes/no选项'});
btn2
=newButton(...{renderTo:'c',text:'输入框选项'});
btn3
=newButton(...{renderTo:'d',text:'进度条选项'});

//确定选项
btn0.on('click',function()...{
MessageBox.alert(
'消息框',
'Ext很简单。',
root.onResult);
}
);

//yes/no选项
btn1.on('click',function(evt)...{
MessageBox.confirm(
'提问',
'Ext是否很容易掌握?',
root.onResult);
}
);

//输入框选项
btn2.on('click',function(evt)...{
MessageBox.prompt(
'输入框',
'输入内容:',
root.onResult);
}
);

//进度条选项
btn3.on('click',function()...{
//生成进度条,分别设定了标题,信息,宽,是否自动前进进度,是否自动关闭进度5项
MessageBox.show(...{
title:
'进度条',
msg:
'初始化中…',
width:
240,
progress:
true,
closable:
false
}
);

//进度条定时处理
varf=function(v)...{
returnfunction()...{
if(v<=10)...{
MessageBox.updateProgress(
v
/10,'读取进度'+v+'/10');
}
else...{
//隐藏Ext消息框
MessageBox.hide();
}

}
;
}
;
//进度条时间设定
for(vari=1;i<=11;i++)...{
setTimeout(f(i),i
*1000);
}

}
);
}
,
//当前操作对象输出
onResult:function(button,text)...{
trace(
"点击按钮:"+button+"输出文本:"+text);
}

}
;
}
();
// 设定onReady,Ext将在dom加载完毕后自动调用其中操作
Ext.onReady(DialogExt.init,DialogExt, true );

Dialog.html
< html >
< head >
< meta http-equiv ="Content-Type" content ="text/html;charset=UTF-8" >
< title > DialogExt </ title >
<!-- 加载ExtJs资源[当调用Ext.log调试时,需要使用debug方式的js] -->
< link rel ="stylesheet" type ="text/css" href ="resources/css/ext-all.css" />
< script type ="text/javascript" src ="adapter/ext/ext-base.js" ></ script >
< script type ="text/javascript" src ="ext-all-debug.js" ></ script >
<!-- 加载我的js文件 -->
< script type ="text/javascript" src ="DialogExt.js" ></ script >
</ head >
< body >
<!-- 设置Element,以供DialogExt.js调用 -->
< table cellspacing ="5" >
< tr >
< td >< div id ="a" ></ div ></ td >
< td >< div id ="b" ></ div ></ td >
< td >< div id ="c" ></ div ></ td >
< td >< div id ="d" ></ div ></ td >
</ tr >
</ table >
</ body >
</ html >

效果图如下:




form应用实例,在此我演示了Ext中简单的Form生成方式。

FormExt.js
FormExt = function () ... {
vartrace=function(str)...{
Ext.log(str);
}
;
//1.1版为Ext.form.Form
varForm=Ext.form.FormPanel;
varMessageBox=Ext.MessageBox;
varTextField=Ext.form.TextField;
//变量设置
varroot;
varform;
vartextField0;
vartextField1;
vartextField2;
vartextField3;
return...{
//初始化FormExt
init:function()...{
root
=this;

//生成窗体
form=newForm(...{
//样式
baseCls:'x-plain',
//label宽
labelWidth:75,
//数据提交地址
url:'save.jspa'
}
);

//生成TextField
textField0=newTextField(...{
fieldLabel:
'姓名',
name:
'name',
width:
175,
allowBlank:
false
}
);
textField1
=newTextField(...{
fieldLabel:
'地址',
name:
'address',
width:
175
}
);
textField2
=newTextField(...{
fieldLabel:
'年齢',
name:
'age',
width:
175
}
);
textField3
=newTextField(...{
fieldLabel:
'email',
name:
'email',
//验证类型为email
vtype:'email',
width:
175
}
);

//将TextField加载入form
form.add(textField0,textField1,textField2,textField3);

//生成按钮
form.addButton('保存',function()...{
MessageBox.alert(
'消息框','保存数据')}
);
form.addButton(
'取消',function()...{
MessageBox.alert(
'消息框','取消操作')}
);

//将form内容实施到名称为frmExt的div上
form.render('frmExt');
}

}
;

}
();
// 设定onReady,Ext将在dom加载完毕后自动调用其中操作
Ext.onReady(FormExt.init,FormExt, true );


FormExt.html
< html >
< head >
< meta http-equiv ="Content-Type" content ="text/html;charset=UTF-8" >
< title > FormExt </ title >
<!-- ExtJS资源引入 -->
< link rel ="stylesheet" type ="text/css" href ="resources/css/ext-all.css" />
< script type ="text/javascript" src ="adapter/ext/ext-base.js" ></ script >
< script type ="text/javascript" src ="ext-all-debug.js" ></ script >
<!-- 我的js文件 -->
< script type ="text/javascript" src ="FormExt.js" ></ script >
</ head >
< body >
<!-- frame -->
< div style ="width:300px;" >
< div class ="x-box-tl" >< div class ="x-box-tr" >< div class ="x-box-tc" ></ div ></ div ></ div >
< div class ="x-box-ml" >< div class ="x-box-mr" >< div class ="x-box-mc" >
< h3 style ="margin-bottom:5px;" > Ext的form </ h3 >
< div id ="frmExt" ></ div >
</ div ></ div ></ div >
< div class ="x-box-bl" >< div class ="x-box-br" >< div class ="x-box-bc" ></ div ></ div ></ div >
</ div >
</ body >
</ html >


ExtJS自2.0开始UI库已经有了极大的丰富,基本可满足我们日常开发所需的一切效果,而在Java操作中我们习以为常的很多功能,都能够在Ext找到对应的操作。在下回我将着重介绍 Ext中Layout的使用。

PS:由于ExtJS类库较多,所以将于较后进行介绍,目前仅以实例为主,现阶段请参阅ExtJS2.0的doc文档。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值