進(jìn)階篇(3)ExtJs中的Window對象與FormPanel詳解2_第1頁
進(jìn)階篇(3)ExtJs中的Window對象與FormPanel詳解2_第2頁
進(jìn)階篇(3)ExtJs中的Window對象與FormPanel詳解2_第3頁
進(jìn)階篇(3)ExtJs中的Window對象與FormPanel詳解2_第4頁
進(jìn)階篇(3)ExtJs中的Window對象與FormPanel詳解2_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

北風(fēng)網(wǎng)項目培訓(xùn)進(jìn)階篇(3)-ExtJs中的Window對象與FormPanel詳解2講師:風(fēng)舞煙ExtJs版國訊教育通用智能OA辦公平臺目錄Ext.Window類Ext.Window類實例Ext.FormPanel類Ext.FormPanel類實例類Ext.Window

包:Ext定義的文件Window.js類全稱:Ext.Window

繼承自于:Ext.Panel說明:一種專用于程序中的“視窗”(window)的特殊面板。Window默認(rèn)下是可拖動的draggable、浮動的窗體。窗體可以最大化到整個視圖、恢復(fù)原來的大小,還可以最小化minimize。

Windows既可關(guān)聯(lián)到Ext.WindowGroup或籍由Ext.WindowManager來管理,提供分組(grouping),活動(activation),置前/置后(tofront/back)或其它應(yīng)用程序特定的功能。

缺省狀態(tài)下,窗體都渲染到document.body。要強(qiáng)制constrain窗體以某個元素為依托就要使用renderTo方法。

例://html代碼

<div

id="win"

class="x-hidden"></div>//js代碼

var

w=new

Ext.Window({

el:"win",//主體顯示的html元素

width:300,

height:200,

title:"標(biāo)題"

});

w.show();參數(shù)介紹:

因為前面已經(jīng)介紹了panel組件,下面只介紹window組件的幾個其他特別的配置參數(shù)//幾個前面沒有介紹的window自己的配置參數(shù)

1.closeAction:枚舉值為:close(默認(rèn)值),當(dāng)點擊關(guān)閉后,關(guān)閉window窗口hide,關(guān)閉后,只是hidden窗口

2.closable:true在右上角顯示小叉叉的關(guān)閉按鈕,默認(rèn)為true

3.constrain:true則強(qiáng)制此window控制在viewport,默認(rèn)為false

4.modal:true為模式窗口,后面的內(nèi)容都不能操作,默認(rèn)為false

5.plain://true則主體背景透明,false則主體有小差別的背景色,默認(rèn)為false//需要顯示下show()方法,默認(rèn)的窗口是可拖動的,可關(guān)閉的,可拖動大小的

w.show()實例介紹1.嵌套了tabpanel的windowvar

w=new

Ext.Window({

contentEl:"win",

width:300,

height:200,

items:new

Ext.TabPanel({

activeTab:0,//當(dāng)前標(biāo)簽為第1個tab(從0開始索引)

border:false,

items:[{title:"tab1",html:"tab1在windows窗口中"},{title:"tab2",html:"tab2在windows窗口中"}]//TabPanel中的標(biāo)簽頁,以后再深入討論

}),

plain:true,//true則主體背景透明,false則主體有小差別的背景色,默認(rèn)為false

title:"標(biāo)題"

});

w.show();添加工具欄//

bbar:[{text:“確定”},{text:“取消”,handler:function(){w.close();}}],//bottom部

buttons:[{text:“確定”},{text:“取消”,handler:function(){w.close();}}],//footer部

buttonAlign:“center”,//footer部按鈕排列位置,這里是中間

//

collapsible:true,//右上角的收縮按鈕其他與Panel一樣!類:Ext.form.FormPanel

包:Extform定義的文件:Form.js類全稱:Ext.form.FormPanel

繼承自于:Ext.Panel

//查看源代碼便知,兩種方法是一樣的

Ext.form.FormPanel

=

Ext.FormPanel;實例1<!--html代碼-->

<body>

<div

id="form1"></div>

</body>//js代碼

var

form1

=

new

Ext.form.FormPanel({

width:350,

frame:true,//圓角和淺藍(lán)色背景

renderTo:"form1",//呈現(xiàn)

title:"FormPanel",

bodyStyle:"padding:5px

5px

0",

items:[

{

fieldLabel:"UserName",//文本框標(biāo)題

xtype:"textfield",//表單文本框

name:"user",

id:"user",

width:200

},{

fieldLabel:"PassWord",

xtype:"textfield",

name:"pass",

id:"pass",

width:200

}

],

buttons:[{text:"確定"},{text:"取消",handler:function(){alert("事件!");}}]

});關(guān)于inputType,參數(shù)如下://input的常用幾種類型radio

check

text(默認(rèn))

file

password等等關(guān)于FormPanel的配置參數(shù),請主要參考panel的參數(shù),這里列舉另外兩個:1.labelAlign:fieldlabel的排列位置,默認(rèn)為"left",其他兩個枚舉值是"center","right"

2.labelWidth:fieldlabel的占位寬

3.method:"get"或"post"

4.url:"提交的地址"

5.submit:提交函數(shù)

//稍后我們一起詳細(xì)分析

實例2.FormPanel的fieldset應(yīng)用//把前面代碼重寫items屬性

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:["男","女","保密"],//數(shù)據(jù)源為一數(shù)組

fieldLabel:"性別",

emptyText:'請選擇性別.'

}]

}

]關(guān)于xtype的類型,在extjs的form表單(其他的請參考api)中已經(jīng)定義的有: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實例3:可選的fieldset實例

//因為覺得這個參數(shù)特別,特舉一例以說明

1.checkboxToggle:true//true則呈現(xiàn)一個帶checkbox的fieldset,選中則展開,否則相反,默認(rèn)為false

2.checkboxName:string//當(dāng)上面為true時,作為checkbox的name,方便表單操作js核心代碼貼出來//在上一節(jié)的基礎(chǔ)代碼的items里面添加如下配置

{

xtype:"fieldset",

checkboxToggle:true,//關(guān)鍵參數(shù),其他和以前的一樣

checkboxName:"dfdf",

title:"選填信息",

defaultType:'textfield',

width:330,

autoHeight:true,//使自適應(yīng)展開排版

items:[{

fieldLabel:“UserName”,

name:“user”,

anchor:“95%”//330px-labelWidth剩下的寬度的95%,留下5%作為后面提到的驗證錯誤提示

},

{

fieldLabel:"PassWord",

inputType:"password",//密碼文本

name:"pass",

anchor:"95%"

}]

}實例4.表單驗證實例(空驗證,密碼確認(rèn)驗證,email驗證)

我們可以用單獨的js寫表單驗證,但是extjs已經(jīng)為我們想到了(自己單獨寫反而不方便)。

在驗證之前,我不得不提兩個小知識點://大家在很多的extjs代碼中都看到了這兩個,他們都起提示作用的

Ext.QuickTips.init();//支持tips提示

Ext.form.Ftotype.msgTarget='side';//提示的方式,枚舉值為"qtip","title","under","side",id(元素id)

//side方式用的較多,右邊出現(xiàn)紅色感嘆號,鼠標(biāo)上去出現(xiàn)錯誤提示,其他的我就不介紹了,可自行驗證

//大家可以分別去掉這兩行代碼,看效果就會明白他們的作用,(放在onReady的function(){}中)4-1.我們看一個最簡單的例子:空驗證//空驗證的兩個參數(shù)

1.allowBlank:false//false則不能為空,默認(rèn)為true

2.blankText:string//當(dāng)為空時的錯誤提示信息js代碼為:var

form1

=

new

Ext.form.FormPanel({

width:350,

frame:true,

renderTo:"form1",

labelWidth:80,

title:"FormPanel",

bodyStyle:"padding:5px

5px

0",

defaults:{width:150,xtype:"textfield",inputType:"password"},

items:[

{fieldLabel:"不能為空",

allowBlank:false,//不允許為空

blankText:"不能為空,請?zhí)顚?,//錯誤提示信息,默認(rèn)為This

field

is

required!

id:"blanktest",

anchor:"90%"

}

]

});4-2:用vtype格式進(jìn)行簡單的驗證。

在此舉郵件驗證的例子,重寫上面代碼的items配置:items:[

{fieldLabel:"不能為空",

vtype:"email",//email格式驗證

vtypeText:"不是有效的郵箱地址",//

id:"blanktest",

anchor:"90%"

}你可以修改上面的vtype為以下的幾種extjs的vtype默認(rèn)支持的驗證://form驗證中vtype的默認(rèn)支持類型

1.alpha

//只能輸入字母,無法輸入其他(如數(shù)字,特殊符號等)

2.alphanum//只能輸入字母和數(shù)字,無法輸入其他

3.email//email驗證,要求的格式是“l(fā)angsin@”

4.url//url格式驗證,要求的格式類似于

4-3.確認(rèn)密碼驗證(高級自定義驗證)

前面的驗證都是extjs已經(jīng)提供的驗證,我們也可以自定義驗證函數(shù),比上面要復(fù)雜點了。我們一起做一個密碼確認(rèn)的例子。我們修改前面的代碼://先用Ext.apply方法添加自定義的password驗證函數(shù)(也可以取其他的名字)

Ext.apply(Ext.form.VTypes,{

password:function(val,field){//val指這里的文本框值,field指這個文本框組件,大家要明白這個意思

if(field.confirmTo){//confirmTo是我們自定義的配置參數(shù),一般用來保存另外的組件的id值

var

pwd=Ext.get(field.confirmTo);//取得confirmTo的那個id的值

return

(val==pwd.getValue());

}

return

true;

}

});//配置items參數(shù)

items:[{fieldLabel:"密碼",

id:"pass1",

anchor:"90%"

},{

fieldLabel:"確認(rèn)密碼",

id:"pass2",

vtype:"password",//自定義的驗證類型

vtypeText:"兩次密碼不一致!",

confirmTo:"pass1",//要比較的另外一個的組件的id

anchor:"90%"

}ExtJs中其他組件示例Checkbox簡單示例js代碼:Ext.onReady(function(){

//Ext.QuickTips.init();

var

myform=new

Ext.FormPanel({

frame:true,

width:330,

layout:"form",

labelWidth:30,

title:"checkbox簡單示例",

labelAlign:"left",

renderTo:Ext.getBody(),

items:[{

xtype:"panel",

layout:"column",//也可以是table,實現(xiàn)多列布局

fieldLabel:'愛好',

isFormField:true,//非常重要,否則panel默認(rèn)不顯示fieldLabelitems:[{

columnWidth:.5,//寬度為50%

xtype:"checkbox",

boxLabel:"足球",//顯示在復(fù)選框右邊的文字

name:""

},{

columnWidth:.5,

xtype:"checkbox",

boxLabel:"籃球",

name:""

}]

}]

});

});//其他幾個參數(shù)

1.checked:true//true則選中,默認(rèn)為false

2.name:"**"http://name值

3.value:""http://初始化值,默認(rèn)為undefineradio簡單示例

代碼://基本同上,不做過多解釋

Ext.onReady(function(){

Ext.QuickTips.init();

var

myform=new

Ext.FormPanel({

frame:true,

width:330,

layout:"form",

labelWidth:30,

title:"radio簡單示例",

labelAlign:"left",

renderTo:Ext.getBody(),

items:[{

xtype:"panel",

layout:"column",

fieldLabel:'性別',

isFormField:true,

items:[{

columnWidth:.5,

xtype:"radio",

boxLabel:"男",

name:"sex"

//inputValue

},{

columnWidth:.5,

checked:true,

xtype:"radio",

boxLabel:"女",

name:"sex"

}]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論