ExtJS2.0開發與實踐筆記[1]——ExtJS中的Dialog與Form
ExtJS2.0中提供了一整套的web表示層UI解決方案,令我們可以非常輕易的實現平時較為複雜的javascript操作,在此我以表示層開發中使用較多的Dialog與Form功能進行一次ExtJS2.0的實現演示。
ExtJS2.0的配置及執行方式請參閱 ExtJS2.0開發與實踐筆記[0]-初識ExtJS
DialogExt.js (此中包含了ExtJS的確定,分支選擇,進度條,輸入框等四個應用例項)
ExtJS2.0的配置及執行方式請參閱 ExtJS2.0開發與實踐筆記[0]-初識ExtJS
DialogExt.js (此中包含了ExtJS的確定,分支選擇,進度條,輸入框等四個應用例項)
/**
*
*/
var DialogExt=function(){
/**
* 追蹤輸出
* @param {Object} str
*/
var trace=function(str){
//在ExtJS2.0中,log由Ext統一排程
Ext.log(str);
};
//設定Ext.Button別名為Button
var Button=Ext.Button;
//設定Ext.MessageBox別名為MessageBox
var MessageBox=Ext.MessageBox;
//變數設定,用於儲存DialogExt自身及當中鍵鈕
var root;
var btn0;
var btn1;
var btn2;
var btn3;
//返回操作
return {
//初始化函式
init:function(){
//設定root等於this
root=this;
//生成Ext按鈕,繫結資料到Element,renderTo為繫結的按鈕名,text為輸出內容
btn0=new Button({renderTo:`a`,text:`確定選項`});
btn1=new Button({renderTo:`b`,text:`yes/no選項`});
btn2=new Button({renderTo:`c`,text:`輸入框選項`});
btn3=new Button({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
});
//進度條定時處理
var f=function(v) {
return function(){
if (v<=10) {
MessageBox.updateProgress(
v/10,`讀取進度 `+v+`/10`);
} else {
//隱藏Ext訊息框
MessageBox.hide();
}
};
};
//進度條時間設定
for (var i=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);
*
*/
var DialogExt=function(){
/**
* 追蹤輸出
* @param {Object} str
*/
var trace=function(str){
//在ExtJS2.0中,log由Ext統一排程
Ext.log(str);
};
//設定Ext.Button別名為Button
var Button=Ext.Button;
//設定Ext.MessageBox別名為MessageBox
var MessageBox=Ext.MessageBox;
//變數設定,用於儲存DialogExt自身及當中鍵鈕
var root;
var btn0;
var btn1;
var btn2;
var btn3;
//返回操作
return {
//初始化函式
init:function(){
//設定root等於this
root=this;
//生成Ext按鈕,繫結資料到Element,renderTo為繫結的按鈕名,text為輸出內容
btn0=new Button({renderTo:`a`,text:`確定選項`});
btn1=new Button({renderTo:`b`,text:`yes/no選項`});
btn2=new Button({renderTo:`c`,text:`輸入框選項`});
btn3=new Button({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
});
//進度條定時處理
var f=function(v) {
return function(){
if (v<=10) {
MessageBox.updateProgress(
v/10,`讀取進度 `+v+`/10`);
} else {
//隱藏Ext訊息框
MessageBox.hide();
}
};
};
//進度條時間設定
for (var i=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>
<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(){
var trace=function(str){
Ext.log(str);
};
//1.1版為Ext.form.Form
var Form=Ext.form.FormPanel;
var MessageBox=Ext.MessageBox;
var TextField=Ext.form.TextField;
//變數設定
var root;
var form;
var textField0;
var textField1;
var textField2;
var textField3;
return {
//初始化FormExt
init:function(){
root=this;
//生成窗體
form=new Form({
//樣式
baseCls: `x-plain`,
//label寬
labelWidth: 75,
//資料提交地址
url:`save.jspa`
});
//生成TextField
textField0=new TextField({
fieldLabel:`姓名`,
name :`name`,
width :175,
allowBlank:false
});
textField1=new TextField({
fieldLabel:`地址`,
name :`address`,
width :175
});
textField2=new TextField({
fieldLabel:`年齢`,
name :`age`,
width :175
});
textField3=new TextField({
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);
var trace=function(str){
Ext.log(str);
};
//1.1版為Ext.form.Form
var Form=Ext.form.FormPanel;
var MessageBox=Ext.MessageBox;
var TextField=Ext.form.TextField;
//變數設定
var root;
var form;
var textField0;
var textField1;
var textField2;
var textField3;
return {
//初始化FormExt
init:function(){
root=this;
//生成窗體
form=new Form({
//樣式
baseCls: `x-plain`,
//label寬
labelWidth: 75,
//資料提交地址
url:`save.jspa`
});
//生成TextField
textField0=new TextField({
fieldLabel:`姓名`,
name :`name`,
width :175,
allowBlank:false
});
textField1=new TextField({
fieldLabel:`地址`,
name :`address`,
width :175
});
textField2=new TextField({
fieldLabel:`年齢`,
name :`age`,
width :175
});
textField3=new TextField({
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>
<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文件。
本文轉自 cping 51CTO部落格,原文連結:http://blog.51cto.com/cping1982/129953
相關文章
- ExtJS2.0開發與實踐筆記[3]——Ext中的MenuJS筆記
- ExtJS2.0開發與實踐筆記[0]——初識ExtJSJS筆記
- JavaScript設計模式與開發實踐筆記JavaScript設計模式筆記
- ExtJS 6.2開發筆記JS筆記
- 《敏捷軟體開發 原則、模式與實踐》的讀書筆記敏捷模式筆記
- Chrome Extension 開發中的 Tab 操作與實踐Chrome
- JS單例模式《JavaScript設計模式與開發實踐》閱讀筆記JS單例JavaScript設計模式筆記
- 《JavaScript設計模式與開發實踐》讀書筆記之基礎部分JavaScript設計模式筆記
- 《Kafka入門與實踐》讀書筆記Kafka筆記
- SSH開發實踐part1:Spring與Hibernate整合Spring
- 文件驅動開發模式在 AIMS 中的應用與實踐模式AI
- 《Redis開發與運維》快速筆記Redis運維筆記
- 設計模式之單例模式(《JavaScript設計模式與開發實踐》讀書筆記)設計模式單例JavaScript筆記
- iOS BLE 開發小記[5] 與 Remote Peripheral 互動的最佳實踐iOSREM
- 《JavaScript設計模式與開發實踐》模式篇(1)—— 單例模式JavaScript設計模式單例
- EBS開發筆記-1筆記
- 微信小程式開發入門與實踐微信小程式
- 《Web API的設計與開發》讀書筆記WebAPI筆記
- 《Python開發簡單爬蟲》實踐筆記Python爬蟲筆記
- 《GitHub 入門與實踐》閱讀筆記(第4章)Github筆記
- ExtJs中xtype與元件類的對應表JS元件
- 【筆記】樹的表示與實現筆記
- 最佳實踐(1):安卓開發安卓
- ExtJs備忘錄(1)——Form表單(一)[控制元件使用](1)JSORM控制元件
- 乾貨:PHP與大資料開發實踐PHP大資料
- 平安雲原生資料庫開發與實踐資料庫
- 雲原生推動全雲開發與實踐
- webpack與SPA實踐之開發環境搭建Web開發環境
- ArkTS 中的記憶體調優與配置:最佳實踐記憶體
- 《JavaScript設計模式與開發實踐》基礎篇(1)—— this、call 和 applyJavaScript設計模式APP
- Spring開發:動態代理的藝術與實踐Spring
- 開放出版:潘凡《MongoDB開發與運維實踐》MongoDB運維
- 《Redis 設計與實踐》讀書筆記系列五:字典 rehashRedis筆記
- 極光筆記丨百億級資料的實時存取優化與實踐筆記優化
- GitHub Tips (很實用,值得收藏)—— 《GitHub入門與實踐》筆記Github筆記
- [敏捷開發實踐](1) 認識敏捷開發敏捷
- Gradle多渠道打包的原理、實踐與輔助開發Gradle
- 我理解的測試開發與實踐總結——新人篇