乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ExtJs之FormPanel篇

       小花驢 2015-05-13

      表單時(shí)是web中常見(jiàn)的元素,Ext中的表單也是特別豐富的,接下來(lái)我們一塊看看表單的相關(guān)內(nèi)容。

      還是先看一下代碼和效果:

      復(fù)制代碼
      Ext.onReady(function(){
      var fp=new Ext.form.FormPanel({ //注意:Ext.form.FormPanel=Ext.FormPanel
      title:'用戶(hù)登錄',
      width:300,
      //height:250,
      bodyStyle:'padding:5px 5px 0',
      renderTo:'divFormPanel',
      frame:true,//在此,這個(gè)屬性就很重要了,如果不為true,你會(huì)看到下面的button和panel看起來(lái)是分開(kāi)的
      url:'login.aspx',//提交地址
      method:'post',//提交方法
      defaults:{ //在這里同一定義item中屬性,否則需要各個(gè)指明
      xtype:'textfield',
      labelAlign:'left',
      labelWidth:80,
      width:100
      },
      items:[
      {
      fieldLabel:'用戶(hù)名',
      xtype:'textfield',//Ext基本類(lèi)型,也可以用其對(duì)應(yīng)的form元素代替
      name:'userName',
      id:'userName'
      //width:100
      },
      {
      fieldLabel:'密碼',
      //xtype:'textfield',//Ext基本類(lèi)型,也可以用其對(duì)應(yīng)的form元素代替
      inputType:'password',
      name:'userPwd',
      id:'userPwd'
      //width:100
      }
      ],
      buttonAlign:'center',//按鈕對(duì)其方式
      buttons:[
      {
      text:'確定'
      },
      {
      text:'取消',
      handler:function(){//點(diǎn)擊取消按鈕的操作事件
      fp.hide();
      }
      }
      ]
      });
      });
      復(fù)制代碼

      FormPanel也比較好用,但是我認(rèn)為我們有必要就上面xtype和inputType說(shuō)幾點(diǎn)。

      大家其實(shí)很多時(shí)候會(huì)發(fā)現(xiàn),在Ext組件中(對(duì)于所有容器組件[這里就是可以有子組件的組件])items里面基本上有兩種存在形式,一種就是像上面一樣我們直接以Json的形式進(jìn)行配置;另一種就是既然items中是一個(gè)個(gè)item,我們可以定義一個(gè)對(duì)象放到里面,例如假設(shè)在一個(gè)panel中還有一個(gè)子panel,我們就可以直接var pn=new Ext.Panel({…});然后放到items中。上面的話(huà)我再?gòu)?qiáng)調(diào)一下,它不僅僅針對(duì)FormPanel,而是對(duì)于所有容器組件都是這樣。不妨看一個(gè)例子,我覺(jué)得大家經(jīng)??吹竭@樣的代碼:

      復(fù)制代碼
      var panel=new Ext.Panel({
      renderTo:"divPanel",
      title:"我的面板",
      width:400,
      height:300,
      items:[
      new Ext.Panel({title:'子panel1',html:'子panel1內(nèi)容'}),
      new Ext.Panel({title:'子panel2',html:'子panel2內(nèi)容'})
      ]
      });
      復(fù)制代碼

      以至于很多初學(xué)者認(rèn)為像上面的代碼不能夠?qū)懗上旅娴男问剑?/p>

      復(fù)制代碼
      var panel=new Ext.Panel({
      renderTo:"divPanel",
      title:"我的面板",
      width:400,
      height:300,
      items:[
      {…},
      {…}
      ]
      });
      復(fù)制代碼

      其實(shí)這是對(duì)于xtype不太了解的原因。Ext中xtype和Class(類(lèi))是一一對(duì)應(yīng)的,所以既然上面items中是panel對(duì)象,那么就有對(duì)應(yīng)的xtype,事實(shí)上我們可以知道它對(duì)應(yīng)"panel",那么既然是這樣,上面的代碼當(dāng)然可以寫(xiě)成第第一種存在形式:

      復(fù)制代碼
      var panel=new Ext.Panel({
      renderTo:"divPanel",
      title:"我的面板",
      width:400,
      height:300,
      items:[
      {xtype:'panel',title:'子panel1',html:'子panel1內(nèi)容'},
      {xtype:'panel',title:'子panel2',html:'子panel2內(nèi)容'}
      ]
      });
      復(fù)制代碼

      事實(shí)上從本質(zhì)上來(lái)講上面兩種情況是一樣的,只是表現(xiàn)形式不同而已,那么對(duì)于上面的代碼如何用第二種方式呢,你會(huì)問(wèn),像{    fieldLabel:'用戶(hù)名',    xtype:'textfield',//Ext基本類(lèi)型,也可以用其對(duì)應(yīng)的form元素代替name:'userName',id:'userName'    //width:100    }這樣的代碼是什么對(duì)象呢?其實(shí)它對(duì)應(yīng)的是"Ext.form.TextField"。這里放上一張對(duì)應(yīng)表:

      xtype

      類(lèi)

      box

      Ext.BoxComponent

      button

      Ext.Button

      colorpalette

      Ext.ColorPalette

      component

      Ext.Component

      container

      Ext.Container

      cycle

      Ext.CycleButton

      dataview

      Ext.DataView

      datepicker

      Ext.DatePicker

      editor

      Ext.Editor

      editorgrid

      Ext.grid.EditorGridPanel

      grid

      Ext.grid.GridPanel

      paging

      Ext.PagingToolbar

      panel

      Ext.Panel

      progress

      Ext.ProgressBar

      propertygrid

      Ext.grid.PropertyGrid

      slider

      Ext.Slider

      splitbutton

      Ext.SplitButton

      statusbar

      Ext.StatusBar

      tabpanel

      Ext.TabPanel

      treepanel

      Ext.tree.TreePanel

      viewport

      Ext.Viewport

      window

      Ext.Window

      toolbar

      Ext.Toolbar

      tbbutton

      Ext.Toolbar.Button

      tbfill

      Ext.Toolbar.Fill

      tbitem

      Ext.Toolbar.Item

      tbseparator

      Ext.Toolbar.Separator

      tbspacer

      Ext.Toolbar.Spacer

      tbsplit

      Ext.Toolbar.SplitButton

      tbtext

      Ext.Toolbar.TextItem

      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

      好了,說(shuō)了那么多xtype,inputType還沒(méi)有說(shuō)呢。我們說(shuō)xtype和class是對(duì)應(yīng)的,當(dāng)然表單中xtype和class都有inputType屬性,而且最為有意思的是對(duì)于form中的元素inputType的取值范圍是一樣的,什么意思呢?我們還看例子(我們直接對(duì)上面的代碼精簡(jiǎn)好了,這個(gè)例子中我們就用class形式好了):

      復(fù)制代碼
      var fp=new Ext.form.FormPanel({
      title:'用戶(hù)登錄',
      width:300,
      bodyStyle:'padding:5px 5px 0',
      renderTo:'divFormPanel',
      frame:true,
      items:[
      new Ext.form.Radio({
      boxLabel:'男',
      name:'sex',
      id:'male'
      }),
      new Ext.form.Radio({
      boxLabel:'女',
      name:'sex',
      id:'sex_female'
      })
      ]
      });
      復(fù)制代碼

      上面這個(gè)例子很簡(jiǎn)單(不太好看,因?yàn)榈竭@里還沒(méi)有說(shuō)到form中相關(guān)控件,所以沒(méi)有在布局上花功夫),也很容易理解,就是Radio控件嗎。但是我修改過(guò)inputType之后呢:

      復(fù)制代碼
      var fp=new Ext.form.FormPanel({
      title:'用戶(hù)登錄',
      width:300,
      bodyStyle:'padding:5px 5px 0',
      renderTo:'divFormPanel',
      frame:true,
      items:[
      new Ext.form.Radio({
      boxLabel:'男',
      inputType:'textfield',
      name:'sex',
      id:'male'
      }),
      new Ext.form.Radio({
      boxLabel:'女',
      inputType:'file',
      name:'sex',
      id:'sex_female'
      })
      ]
      });
      復(fù)制代碼

      可以說(shuō)上面的代碼如果對(duì)于初學(xué)者來(lái)說(shuō)肯定想不到一個(gè)radio變成了textfield,另一個(gè)變成了file。不是創(chuàng)建的Radio對(duì)象嗎?怎么成了其他的控件,這個(gè)就是Ext中inputType的特殊之處。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多