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

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

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

    最愛Java

    書山有路勤為徑,學海無涯苦作舟

    ExtJs----Ext支持的控件

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

        下列示例展現了空間可以使用的校驗顯示方式:

     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的父類,它既可以通過手工錄入數據,也可以通過選擇錄入數據。為了顯示下拉選擇的功能,需要覆寫它的onTriggerClick()函數以實現彈出窗口。

     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是一個預先創建的一個Ext.menu.Menu實例,實例中可以放按鈕,表格等控件。
     8        }

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

    11}
    );

    使用表單提交數據

     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('錯誤','操作失敗!');
    23                    }

    24                }
    );
    25            }

    26        }
    ]
    27    }
    )
    28}
    );

        在Ext.lib.Ajax中,判斷究竟是調用success還是failure的條件與業務無關。如果Http響應成功,就執行success;如果出現404或500錯誤,就執行failure。
        form中的success和failure則是與業務相關的,只有后臺響應為true或響應的JSON中包含success:true時,才執行success()函數。不過,這樣一來failure()函數就復雜了,如何判斷是連接失敗,還是業務上出現問題呢?為了區分它們,EXT默認規定:如果響應的JSON中success不是true,并且響應的JSON中包含errors:{},那么就認為是業務錯誤;如果不包含errors:{},就認為是連接失敗。當業務錯誤時,用this.failureType=Ext.form.Action.SERVER_INVALID;標記,可以通過action.failureType進行判斷。

    使用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)

    表單布局----默認的平鋪布局

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

        Form中的標簽默認使用左對齊的方式,一共有left, top, right三個值可以選,我們可以通過配置labelAlign : 'right'使得右對齊。標簽文字的寬度也可以設置,labelWidth : 60。如果標簽過長,文字會自動換行。按鈕位置也可以設置,有left, center, right3種選擇,默認是right。

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

        
    先使用layout : 'column'來說明下面要使用的是列布局,然后在items指定的每列中使用columnWidth指定每列所占總寬度的百分比。
        如果使用了分列布局,就不能在表單中直接使用defaultType指定默認的xtype了,否則會影響布局結果。每一列中也必須手動指定使用layout : 'form',這樣才能在每列中正常顯示輸入框和對應標簽。layout : 'form'其實就是FormPanel默認使用的布局方式,即自上而下一次排列。

     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:'三個字'}]            
    11            }
    ,{
    12                columnWidth:.33,
    13                layout : 'form',
    14                items:[{xtype:'textfield',fieldLabel:'四個字'}]
    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:'三個字',
    16            autoHeight:true,
    17            defaultType:'textfield',
    18            items:[{fieldLabel:'三個字'},{fieldLabel:'三個字'},{fieldLabel:'三個字'}]
    19        }
    ]
    20    }
    ,{
    21        xtype:'fieldset',
    22        title:'四個漢字',
    23        autoHeight:true,
    24        items:[{width:345,height:100,xtype:'textarea',fieldLabel:'四個字'}]
    25}
    ]

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

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

    復選框和單選框

     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參數,如:

    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添加一個field,并為它設置inputType : 'file',如:

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

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

    公告


    導航

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

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲首页国产精品丝袜| 一级毛片视频免费| 亚洲精品视频免费观看| 国产成人免费ā片在线观看老同学| 亚洲av无码不卡| 少妇高潮太爽了在线观看免费| 特级毛片A级毛片免费播放| 久久久久久亚洲精品中文字幕 | 免费a级毛片无码a∨免费软件| 亚洲精品国产成人| 亚洲精品成人在线| 精品国产sm捆绑最大网免费站| 边摸边吃奶边做爽免费视频99 | 亚洲精品二三区伊人久久| 亚洲AV永久无码精品一区二区国产| 久久A级毛片免费观看| 香蕉视频免费在线| 911精品国产亚洲日本美国韩国| 免费一级毛片清高播放| 6080午夜一级毛片免费看6080夜福利 | 97人伦色伦成人免费视频| 9久久免费国产精品特黄| 亚洲日本乱码卡2卡3卡新区| 久久久久亚洲av成人无码电影 | 成人自慰女黄网站免费大全| 亚洲一线产品二线产品| 国产偷v国产偷v亚洲高清| 日韩免费无码一区二区视频| 无码国产精品一区二区免费模式 | 成在人线av无码免费高潮水| 亚洲av永久中文无码精品| 亚洲精品视频在线| 精品亚洲一区二区三区在线观看 | 久久WWW色情成人免费观看| 久久久久成人精品免费播放动漫| 羞羞网站在线免费观看| 国产成人精品亚洲日本在线 | fc2成年免费共享视频18| 亚洲第一成年网站视频| 亚洲国产成人久久三区| 亚洲国语精品自产拍在线观看|