<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最愛(ài)Java

    書(shū)山有路勤為徑,學(xué)海無(wú)涯苦作舟

    ExtJs----Ext支持的控件

    基本輸入控件Ext.form.Field
        Ext.form.Field是所有表單輸入控件的基類,其他的輸入控件都是基于它擴(kuò)展的來(lái)的。其定義了輸入控件通用的屬性和功能函數(shù),這些通用的屬性和功能函數(shù)大致分為3大類:頁(yè)面顯示樣式、控件參數(shù)配置和數(shù)據(jù)有效性校驗(yàn)。
        頁(yè)面顯示樣式:clearCls, cls, fieldClass, focusClass, itemCls, invalidClass, labelStyle等屬性,他們分貝用來(lái)定義不同狀態(tài)下輸入框采用的樣式。
        控件參數(shù)配置:autoCreate, disabled, fieldLabel, hideLabel, inputType, labelSeparator, name, readOnly, tabIndex, value等屬性。
       數(shù)據(jù)有效性檢驗(yàn):invalidText, msgFx, msgTarget, validateOnBlue, validateDelay, validateEvent等屬性。

        下列示例展現(xiàn)了空間可以使用的校驗(yàn)顯示方式:

     1Ext.QuickTips.init();
     2
     3var field1 = new Ext.form.Field({
     4    fieldLabel:'qtip',
     5    msgTarget:'qtip'
     6}
    );
     7var field2 = new Ext.form.Field({
     8    fieldLabel:'title',
     9    msgTarget:'title'
    10}
    );
    11var field3 = new Ext.form.Field({
    12    fieldLabel:'side',
    13    msgTarget:'side'
    14}
    );
    15var field4 = new Ext.form.Field({
    16    fieldLabel:'under',
    17    msgTarget:'under'
    18}
    );
    19
    20var form = new Ext.form.FormPanel({
    21    title:'form',
    22    items:[field1,field2,field3,field4],
    23    renderTo:'form'
    24}
    );
    25
    26field1.markInvalid();
    27field2.markInvalid();
    28field3.markInvalid();
    29field4.markInvalid();
    30

    下拉輸入框Ext.form.TriggerField
        
    Ext.form.TriggerField是ComboBox, DateField和TimeField的父類,它既可以通過(guò)手工錄入數(shù)據(jù),也可以通過(guò)選擇錄入數(shù)據(jù)。為了顯示下拉選擇的功能,需要覆寫(xiě)它的onTriggerClick()函數(shù)以實(shí)現(xiàn)彈出窗口。

     1var triggerField = new Ext.form.TriggerField({
     2    fieldLabel:'選擇',
     3    name:'name',
     4    onSelect:function(record){},
     5    onTriggerClick:function(){
     6        if (this.menu == null{
     7            this.menu = selectMenu;  //selectMenu是一個(gè)預(yù)先創(chuàng)建的一個(gè)Ext.menu.Menu實(shí)例,實(shí)例中可以放按鈕,表格等控件。
     8        }

     9        this.menu.show(this.el,"tl-bl?");  //tl-bl?標(biāo)示彈出的菜單的左上角或左下角與Ext.form.TriggerField對(duì)齊
    10    }

    11}
    );

    使用表單提交數(shù)據(jù)

     1Ext.onReady(function(){
     2    var form = new Ext.form.FormPanel({
     3        defaultType:'textfield',
     4        labelAlign:'right',
     5        title:'form',
     6        labelWidth:50,
     7        frame:true,
     8        width:220,
     9        url:'04_01.jsp',
    10        items:[{
    11            fieldLabel:'文本框',
    12            name:'text'
    13        }
    ],
    14        buttons:[{
    15            text:'按鈕',
    16            handler:function(){
    17                form.getForm().submit({
    18                    success:function(form,action){
    19                        Ext.Msg.alert('信息',action.result.msg);
    20                    }
    ,
    21                    failure:function(){
    22                        Ext.Msg.alert('錯(cuò)誤','操作失敗!');
    23                    }

    24                }
    );
    25            }

    26        }
    ]
    27    }
    )
    28}
    );

        在Ext.lib.Ajax中,判斷究竟是調(diào)用success還是failure的條件與業(yè)務(wù)無(wú)關(guān)。如果Http響應(yīng)成功,就執(zhí)行success;如果出現(xiàn)404或500錯(cuò)誤,就執(zhí)行failure。
        form中的success和failure則是與業(yè)務(wù)相關(guān)的,只有后臺(tái)響應(yīng)為true或響應(yīng)的JSON中包含success:true時(shí),才執(zhí)行success()函數(shù)。不過(guò),這樣一來(lái)failure()函數(shù)就復(fù)雜了,如何判斷是連接失敗,還是業(yè)務(wù)上出現(xiàn)問(wèn)題呢?為了區(qū)分它們,EXT默認(rèn)規(guī)定:如果響應(yīng)的JSON中success不是true,并且響應(yīng)的JSON中包含errors:{},那么就認(rèn)為是業(yè)務(wù)錯(cuò)誤;如果不包含errors:{},就認(rèn)為是連接失敗。當(dāng)業(yè)務(wù)錯(cuò)誤時(shí),用this.failureType=Ext.form.Action.SERVER_INVALID;標(biāo)記,可以通過(guò)action.failureType進(jìn)行判斷。

    使用HTML原始的提交形式

    1handler:function(){
    2    form.getForm().getEl().dom.action = '04_01.jsp';
    3    form.getForm().getEl().com.submit();
    4}

    單純Ajax

     1Ext.lib.Ajax.request(
     2    'POST',
     3    '04_01.jsp',
     4    {
     5        success:function(response){
     6            var result = Ext.decode(response.responseText);
     7            Ext.Msg.alert('信息',result.msg);
     8        }
    ,
     9        failure:function(){}
    10    }

    11)

    表單布局----默認(rèn)的平鋪布局

    1items:{
    2    {fieldLabel:'倆字'},
    3    {fieldLabel:'三個(gè)字'},
    4    {fieldLabel:'四個(gè)漢字'},
    5}

        Form中的標(biāo)簽?zāi)J(rèn)使用左對(duì)齊的方式,一共有l(wèi)eft, top, right三個(gè)值可以選,我們可以通過(guò)配置labelAlign : 'right'使得右對(duì)齊。標(biāo)簽文字的寬度也可以設(shè)置,labelWidth : 60。如果標(biāo)簽過(guò)長(zhǎng),文字會(huì)自動(dòng)換行。按鈕位置也可以設(shè)置,有l(wèi)eft, center, right3種選擇,默認(rèn)是right。

    表單布局----平行分列布局

        
    先使用layout : 'column'來(lái)說(shuō)明下面要使用的是列布局,然后在items指定的每列中使用columnWidth指定每列所占總寬度的百分比。
        如果使用了分列布局,就不能在表單中直接使用defaultType指定默認(rèn)的xtype了,否則會(huì)影響布局結(jié)果。每一列中也必須手動(dòng)指定使用layout : 'form',這樣才能在每列中正常顯示輸入框和對(duì)應(yīng)標(biāo)簽。layout : 'form'其實(shí)就是FormPanel默認(rèn)使用的布局方式,即自上而下一次排列。

     1        items:[{
     2            layout:'column',
     3            items:[{
     4                columnWidth:.33,
     5                layout : 'form',
     6                items:[{xtype:'textfield',fieldLabel:'倆字'}]
     7            }
    ,{
     8                columnWidth:.33,
     9                layout : 'form',
    10                items:[{xtype:'textfield',fieldLabel:'三個(gè)字'}]            
    11            }
    ,{
    12                columnWidth:.33,
    13                layout : 'form',
    14                items:[{xtype:'textfield',fieldLabel:'四個(gè)字'}]
    15            }
    ]
    16        }
    ],

    表單布局----在布局中使用fieldset

     1items:[{
     2    layout:'column',
     3    items:[{
     4            columnWidth:.5,
     5            layout : 'form',
     6            xtype:'fieldset',
     7            title:'倆字',
     8            autoHeight:true,
     9            defaultType:'textfield',
    10            items:[{fieldLabel:'倆字'},{fieldLabel:'倆字'}]
    11        }
    ,{
    12            columnWidth:.5,
    13            layout : 'form',
    14            xtype:'fieldset',
    15            title:'三個(gè)字',
    16            autoHeight:true,
    17            defaultType:'textfield',
    18            items:[{fieldLabel:'三個(gè)字'},{fieldLabel:'三個(gè)字'},{fieldLabel:'三個(gè)字'}]
    19        }
    ]
    20    }
    ,{
    21        xtype:'fieldset',
    22        title:'四個(gè)漢字',
    23        autoHeight:true,
    24        items:[{width:345,height:100,xtype:'textarea',fieldLabel:'四個(gè)字'}]
    25}
    ]

    自定義布局:在表單中加入圖片

    1items:[
    2    {fieldLabel:'三個(gè)字'},
    3    {fieldLabel:'三個(gè)字'},
    4    {fieldLabel:'三個(gè)字'},
    5    {xtype:'panel',html:'<center><img src="user_female.png"/></center>'}
    6]

    復(fù)選框和單選框

     1{
     2    xtype:'fieldset',
     3    title:'多選',
     4    defaultType:'checkbox',
     5    hideLabels:true,
     6    items:[{boxLabel:'多選一',inputValue:'1',checked:true},{boxLabel:'多選二',inputValue:'2'},{boxLabel:'多選三',inputValue:'3'}]
     7}
    ,{
     8    xtype:'fieldset',
     9    title:'單選',
    10    defaultType:'radio',
    11    hideLabels:true,
    12    items:[{boxLabel:'單選一',name:'radio',inputValue:'1',checked:true},{boxLabel:'單選二',name:'radio',inputValue:'2'},{boxLabel:'單選三',name:'radio',inputValue:'3'}]        
    13}

    文件上傳
    1)首先,給form添加fileUpload :true參數(shù),如:

    1var form = new Ext.form.FormPanel({
    2    labelAlign:'right',
    3    title:'form',
    4    labelWidth:50,
    5    frame:true,
    6    fielUpload:true,
    7    url:'09_01.jsp',
    8    width:280
    9}
    )

    2)其次,給form添加一個(gè)field,并為它設(shè)置inputType : 'file',如:

    1items:[{
    2    xtype:'textfield',
    3    fieldLabel:'文本框',
    4    name:'file',
    5    inputType:'file'
    6}
    ]

    posted on 2009-10-22 14:31 Brian 閱讀(2966) 評(píng)論(0)  編輯  收藏 所屬分類: JScript

    公告


    導(dǎo)航

    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲日韩图片专区第1页| 最近2018中文字幕免费视频| 国产视频精品免费视频| 人禽伦免费交视频播放| 少妇亚洲免费精品| 国产精品成人免费观看| 一级特级aaaa毛片免费观看 | 亚洲国产精品久久久久久| 国产亚洲AV无码AV男人的天堂| mm1313亚洲精品国产| 久久精品国产亚洲Aⅴ香蕉| 亚洲人成色77777| 亚洲精品成人久久| 亚洲偷自精品三十六区| 亚洲中文字幕无码av| 国产成人亚洲精品电影| 免费精品久久久久久中文字幕| 一日本道a高清免费播放| 中国videos性高清免费| 99爱在线观看免费完整版| 免费国产成人高清在线观看网站| 欧洲精品成人免费视频在线观看| 国产jizzjizz视频全部免费| 国产成A人亚洲精V品无码性色| 久久青青草原亚洲av无码app | selaoban在线视频免费精品| 人人揉揉香蕉大免费不卡| 国产人成免费视频网站| 四虎影永久在线高清免费| 亚洲av无码一区二区三区网站| 亚洲AV第一成肉网| 美女被爆羞羞网站在免费观看 | 国产高清免费视频| 亚洲AV网站在线观看| 亚洲乱人伦精品图片| 亚洲永久在线观看| 亚洲乱色伦图片区小说| 黄色a三级三级三级免费看| 成人免费乱码大片A毛片| 精品熟女少妇AV免费观看| 午夜亚洲AV日韩AV无码大全|