ExtJs控制元件屬性配置詳細

張龍豪發表於2013-08-27

序言:

   1.本文摘自網路,看控制元件命名像是4.0以前的版本,但控制元件屬性配置仍然可以借鑑(不足之處,以後專案用到時再續完善)。

Ext.form.TimeField:

  配置項: 
           maxValue:列表中允許的最大時間 
           maxText:當時間大於最大值時的錯誤提示資訊 
           minValue:列表中允許的最小時間 
           minText:當時間小於最小值時的錯誤提示資訊 
           increment:兩個相鄰選項間的時間間隔,預設為15分鐘 
           format:顯示格式,預設為“g:i A”。一般使用“H:i:s” 
                H:帶字首0的24小時 
                 i:帶字首0的分鐘 
                s:帶字首0的秒 
           invalidText:當時間值非法時顯示的提示資訊 
           altFormats:多個時間輸入格式組成的字串,不同的格式之間使用“|”進行分割

Ext.form.FieldSet

    animCollapse:動畫摺疊,預設為false 
           checkboxToggle:設定是否顯示欄位集的checkbox選擇框,預設為false 
           checkboxName:指定欄位集中用於展開或隱藏欄位集皮膚的checkbox的名字,該屬性只有在checkboxToggle為true時生效 
           labelWidth:欄位標籤的寬度,可以級聯到子容器 
           layout:佈局,預設為form

Ext.form.DateFied

    maxValue:允許選擇的最大日期 
           maxText:當日期大於最大值時的錯誤提示資訊 
           minValue:允許選擇的最小時間 
           minText:當日期小於最小值時的錯誤提示資訊 
           format:日期顯示格式,預設為“m/d/y”,一般使用“Y-m-d” 
               Y:四位年份 
               m:帶字首0的月份 
               d:帶字首0的日期 
               y:兩位年份 
               n:不帶字首0的月份 
               j:不帶字首0的日期 
               w:星期的數字,0表示星期日,1代表星期一 
           showToday:是否顯示今天按鈕,預設為true 
           altFormats:多個日期輸入格式組成的字串,不同的格式之間使用“|”進行分割,預設值為'm/d/Y|n/j/Y|n/j/y|m/j /y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d' 
           disabledDates:禁止選擇的日期組成的陣列 
           disabledDatesText:選擇禁選日期時顯示的提示資訊 
           disabledDays:禁止選擇的星期組成的陣列,0代表星期日,1代表星期一 
           disabledDaysText:選擇禁選星期時顯示的提示資訊 
           invalidText:當日期值非法時顯示的提示資訊 
     方法: 
           getValue():取得日期值

Ext.form.ComboBox

    displayField:被顯示在下拉框中的欄位名 
           editable:是否可編輯,預設為true 
           forceSelection:輸入值是否嚴格為待選列表中存在的值。如果輸入不存在的值,會自動選擇第一個最接近的值。 
           hiddenName:隱藏欄位的名字,如果提供該引數則一個隱藏欄位將被建立,用來儲存所選值,當表單提交時在伺服器端可以通過該名字取得列表中的所選值 
           listWidth:下拉選單的寬度 
           minListWidth:下拉選單的最小寬度,預設為70畫素 
           loadingText:當下拉框載入資料時顯示的提示資訊,只有當mode='remote'時才會生效 
           maxHeight:下拉選單框的最大高度,預設為300畫素 
           minChars:下拉選單框自動選擇前使用者需要輸入的最小字元數量。mode='remote'預設為4,mode='local'預設為0 
           mode:下拉選單框的資料讀取模式。remote讀取遠端資料,local讀取本地資料 
           pageSize:下拉選單框的分頁大小。該項設定只在mode='remote'時生效 
           queryParam:查詢的名字,預設為'query',將被傳遞到查詢字串中 
           allQuery:一個發往伺服器用來查詢全部資訊的查詢字串,預設為空字串'' 
           selectOnFocus:當獲得焦點時立刻選擇一個已存在的列表項。預設為false,此項只有在editable=true時才會生效 
           store:列表框繫結的資料來源 
           transform:將頁面中已存在的元素轉換為組合框 
           lazyInit:延時初始化下拉選單,預設為true 
           lazyRender:延時渲染,預設為false 
           triggerAction:設定單擊觸發按鈕時執行的預設操作,有效值包括all和query,預設為query,如果設定為all則會執行allQuery中設定的查詢 
           typeAhead:設定在輸入過程中是否自動選擇匹配的剩餘部分文字(選擇第一個滿足條件的),預設為false 
           value:初始化組合框中的值 
           valueField:組合框的值欄位 
           valueNotFoundText:值不存在時的提示資訊 
           tpl:Ext模板字串或模板物件,可以通過該配置項自定義下拉選單的顯示方式 
     方法: 
           clearValue():清空欄位當前值 
           doQuery( String query, Boolean forceAll ): 
           getValue(): 
           getStore(): 
           setValue( String value ):

Ext.from.RadioGroup

    allowBlank: 
           blankText:

Ext.form.Radio;

    getGroupValue(): 
           setValue( value {String/Boolean} ):

Ext.form.CheckboxGroup

     allowBlank:是否允許不選擇,預設為true 
           blankText: 
           columns:顯示的列數,可選值包括:固定值auto、數值、陣列(整數、小數) 
           items:物件陣列 
           vertical:是否垂直方向顯示物件,預設為false

Ext.form.Checkbox

  boxLabel:核取方塊的文字描述 
           checked:核取方塊是否被選擇,預設為false 
           handler:當checked值改變時觸發的函式,函式包含兩個引數:checkbox、checked 
           inputValue: 
     方法: 
           getValue():返回核取方塊的checked狀態 
           setValue( Boolean/String checked ):

Ext.form.NumberField

      allowDecimals:是否允許輸入小數,預設為true 
           allowNegative:是否允許輸入負數,預設為true 
           baseChars:輸入的有效數字集合,預設為'0123456789' 
           decimalPrecision:數字的精度,預設保留小數點後2位 
           decimalSeparator:十進位制分隔符,預設為'.' 
           maxValue:允許輸入的最大數值 
           maxText:超過最大值之後的提示資訊 
           minValue:允許輸入的最小數值 
           minText:超過最小值之後的提示資訊 
           nanText:輸入非有效數值之後的提示資訊

Ext.form.TextArea

    preventScrollbars:是否禁止出現滾動條,預設為false

Ext.form.TextField

    allowBlank:是否允許為空,預設為true 
          blankText:空驗證失敗後顯示的提示資訊 
          emptyText:在一個空欄位中預設顯示的資訊 
          grow:欄位是否自動伸展和收縮,預設為false 
          growMin:收縮的最小寬度 
          growMax:伸展的最大寬度 
          inputType:欄位型別:預設為text 
          maskRe:用於過濾不匹配字元輸入的正規表示式 
          maxLength:欄位允許輸入的最大長度 
          maxLengthText:最大長度驗證失敗後顯示的提示資訊 
          minLength:欄位允許輸入的最小長度 
          minLengthText:最小長度驗證失敗後顯示的提示資訊 
          regex:正規表示式 
          regexText:正規表示式驗證失敗後顯示的提示資訊 
          vtype:驗證型別的名字 
               alpha:限制只能輸入字母 
               alphanum:限制只能輸入字母和數字 
               email 
               url 
          vtypeText:驗證失敗時的提示資訊 
          validator:自定義驗證函式 
          selectOnFocus:當欄位得到焦點時自動選擇已存在的文字,預設為false

Ext.form.Field

    name:欄位名 
          value:欄位的初始化值 
          disabled:欄位是否不可用,預設為false 
          fieldLabel:欄位標籤說明 
          hideLabel:隱藏欄位標籤,預設為false 
          labelSeparator:欄位標籤與欄位之間的分隔符,預設為':' 
          labelStyle:欄位標籤樣式 
          inputType:預設為text 
          invalidClass:預設為x-form-invalid 
          invalidText:欄位非法文字提示 
          msgTarget:錯誤資訊顯示的位置,預設為qtip 
              qtip:顯示一個浮動的提示資訊 
              title:顯示一個瀏覽器的浮動提示資訊 
              under:在欄位下方顯示一個提示資訊 
              side:在欄位右邊顯示一個提示資訊 
          readOnly:欄位是否只讀,預設為false 
          validateOnBlur:欄位在失去焦點時被驗證,預設為true 
     方法: 
          clearInvalid(): 
          getRawValue() 
          setRawValue( Mixed value ) 
          getValue() 
          setValue( Mixed value ) 
          isDirty():欄位值在裝載後是否被修改過 
          isValid( Boolean preventMark ):當前欄位值是否合法 
          markInvalid( [String msg] ) 
          validate() 
          reset()

Ext.form.FormPanel

items:一個元素或元素陣列 
          buttons:一個按鈕配置物件的陣列,按鈕將被新增到表單頁尾中 
          buttonAlign:按鈕的對齊方式,可選值有left、center、right,預設為center 
          labelWidth:表單標籤的寬度 
          labelAlign:表單標籤的對齊方式,可選值有left、top、right,預設為left 
          labelSeparator:欄位標籤與欄位之間的分隔符,預設為':' 
          minButtonWidth:按鈕的最小寬度,預設為75 
     方法: 
          getForm() : Ext.form.BasicForm 
          load( Object options ) 
          startMonitoring() 
          stopMonitoring()

Ext.form.BaseicForm

    baseParams:傳遞到請求中的引數 
          method:表單的提交方式,有效值包括GET、POST 
          url:表單預設的提交路徑 
          fileUpload:表單是否進行檔案上傳 
          timeout:表單動作的超時時間,預設為30秒 
          trackResetOnLoad:是否在表單初次建立時清楚資料 
    方法: 
          doAction( String/Object actionName, [Object options] ):執行一個預訂的動作,可用選項包括: 
              url:動作提交的路徑 
              method:表單的提交方式,有效值包括GET、POST 
              params:傳遞到請求中的引數 
              headers: 
              success:執行成功後回撥的函式,包括兩個引數:form和action 
              failure:執行失敗後回撥的函式,包括兩個引數:form和action 
              clientValidation:是否客戶端驗證 
          clearInvalid():清除表單中所有的無效驗證資訊 
          findField( String id ):查詢表單欄位 
          getValues( [Boolean asString] ): 
          isDirty():表單資料是否被更改過 
          isValid():客戶端驗證是否成功 
          load( Object options ):執行表單讀取動作 
          loadRecord( Record record ):從一個資料記錄中讀取資料到表單中 
          markInvalid( Array/Object errors ):成批設定表單欄位為驗證無效 
          reset():重置表單 
          setValues( Array/Object values ):成批設定表單欄位值 
          submit( Object options ):執行表單提交動作 
          updateRecord( Record record ):持久化表單資料到記錄集中

Ext.form.Action

    success:執行成功後回撥的函式,包括兩個引數:form和action 
          failure:執行失敗後回撥的函式,包括兩個引數:form和action 
          method:表單的提交方式,有效值包括GET、POST 
          params:傳遞到請求中的引數 
          url:動作提交的路徑 
          waitMsg:動作執行時顯示的等待資訊 
     屬性: 
          Action.CLIENT_INVALID:客戶端驗證錯誤 
          Action.CONNECT_FAILURE:通訊錯誤 
          Action.LOAD_FAILURE:載入資料時,沒有包含data屬性的欄位被返回 
          Action.SERVER_INVALID:服務端驗證錯誤 
          failureType:錯誤型別 
          result:包含布林型別的success屬性和其他屬性,如{success: true, msg: 'ok'} 
          type:動作型別,可選值有submit和load 
               Ext.form.Action.Submit:返回的資訊中要包含一個布林型別的success屬性和一個可選的errors屬性 
               Ext.form.Action.Load:返回的資訊中要包含一個布林型別的success屬性和一個data屬性

Ext.grid.EditorGridPanel

    clicksToEdit:設定點選單元格進入編輯模式的點選次數,預設為2 
            autoEncode:是否自動編碼/解碼HTML內容,預設為false 
            selModel:預設為Ext.grid.CellSelectionModel 
  
      主要方法: 
            startEditing( Number rowIndex, Number colIndex ):開始編輯指定單元格 
            stopEditing( [Boolean cancel] ):結束編輯操作

Ext.grid.GroupinView

    enableGroupingMenu:是否在表頭選單中進行分組控制,預設為true 
            groupByText:表頭選單中分組控制的選單文字,預設為'Group By This Field' 
  
            enableNoGroups:是否允許使用者關閉分組功能,預設為true 
            showGroupsText:在表頭選單中啟用分組和禁用分組的選單文字,預設為'Show in Groups' 
  
            groupTextTpl:用於渲染分組資訊的模板,預設為'{text}',常用的可選值有: 
                  text:列標題:組欄位值 
                  gvalue:組欄位的值 
                  startRow:組行索引 
  
            enableGrouping:是否對資料分組,預設為true 
            hideGroupedColumn:是否隱藏分組列,預設為false 
            ignoreAdd:在向表格中新增資料時是否重新整理表格,預設為false 
            showGroupName:是否在分組行上顯示分組欄位的名字,預設為true 
            startCollapsed:初次顯示時分組是否處於收縮狀態,預設為false 
  
      主要方法: 
            collapseAllGroups():收縮所有分組行 
            expandAllGroups():展開所有分組行 
            getGroupId( String value ):根據分組欄位值取得組id 
            toggleAllGroups( [Boolean expanded] ):切換所有分組行的展開或收縮狀態 
            toggleGroup( String groupId, [Boolean expanded] ):切換指定分組行的展開或收縮狀態 


2、Ext.data.GroupingStore 
      groupField:分組欄位 

      groupOnSort:是否在分組欄位上排序,預設為false 
      remoteGroup:是否遠端分組資料,預設為false。如果是遠端分組資料,則通過groupBy引數傳送分組欄位名 

3、範例原始碼 

var datas = [[1,"張三",24,"男",new Date(1986,06,09)], [2,"李四",30,"女",new Date(1980,09,13)], [3,"王五",28,"男",new Date(1982,01,10)]];   
               
var person = Ext.data.Record.create([   
    {name: "personId", mapping: 0},   
    {name: "personName", mapping: 1},   
    {name: "personAge", mapping: 2},   
    {name: "personGender", mapping: 3},   
    {name: "personBirth", mapping: 4}   
]);   
  
var grid = new Ext.grid.GridPanel({   
    title: "GroupingView例項",   
    renderTo: "div1",   
    width: 500,   
    height: 300,   
    frame: true,   
    tbar: [   
        {   
            text: "展開/收縮",   
            iconCls: "search",   
            handler: function(){   
                var view = grid.getView();   
                //var groupId = view.getGroupId("男");   
                //view.toggleGroup(groupId);   
                view.toggleAllGroups();   
            }   
        }   
    ],   
       
    store: new Ext.data.GroupingStore({   
        reader: new Ext.data.ArrayReader({id:0}, person),   
        data: datas,   
        sortInfo: {field:"personId", direction:"ASC"}, //資料排序   
        groupField: "personGender" //分組欄位   
    }),   
    view: new Ext.grid.GroupingView({   
        sortAscText: "升序",   
        sortDescText: "降序",   
        columnsText: "表格欄位",   
        groupByText: "使用當前欄位進行分組",   
        showGroupsText: "表格分組",   
        groupTextTpl: "{text}(共{[values.rs.length]}條)"  
    }),   
       
    columns: [   
        {id:"personId", header:"編號", width:50, dataIndex:"personId"},   
        {id:"personName", header:"姓名", width:70, dataIndex:"personName"},   
        {id:"personAge", header:"年齡", width:45, dataIndex:"personAge"},   
        {id:"personGender", header:"性別", width:45, dataIndex:"personGender"},   
        {id:"personBirth", header:"出生日期", width:120, dataIndex:"personBirth", renderer:Ext.util.Format.dateRenderer("Y年m月d日")}   
    ]   
}); 

 

Ext.grid.GridPanel:

    store:表格的資料集 
          columns:表格列模式的配置陣列,可自動建立ColumnModel列模式 
          autoExpandColumn:自動充滿表格未用空間的列,引數為列id,該id不能為0 
          stripeRows:表格是否隔行換色,預設為false 
  
          cm、colModel:表格的列模式,渲染表格時必須設定該配置項 
          sm、selModel:表格的選擇模式,預設為Ext.grid.RowSelectionModel 
          enableHdMenu:是否顯示錶頭的上下文選單,預設為true 
          enableColumnHide:是否允許通過標題中的上下文選單隱藏列,預設為true 
          loadMask:是否在載入資料時顯示遮罩效果,預設為false 
          view:表格檢視,預設為Ext.grid.GridView 
          viewConfig:表格檢視的配置物件 
  
          autoExpandMax:自動擴充列的最大寬度,預設為1000 
          autoExpandMin:自動擴充列的最小寬度,預設為50 
          columnLines:是否顯示列分割線,預設為false 
          disableSelection:是否禁止行選擇,預設為false 
          enableColumnMove:是否允許拖放列,預設為true 
          enableColumnResize:是否允許改變列寬,預設為true 
          hideHeaders:是否隱藏表頭,預設為false 
          maxHeight:最大高度 
          minColumnWidth:最小列寬,預設為25 
          trackMouseOver:是否高亮顯示滑鼠所在的行,預設為true 
  
      主要方法: 
          getColumnModel():取得列模式 
          getSelectionModel():取得選擇模式 
          getStore():取得資料集 
          getView():取得檢視物件 
          reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一個新的資料集和列模式重新配置表格元件 

2、Ext.grid.Column 
      主要配置項: 
          id:列id 
          header:表頭文字 
          dataIndex:設定列與資料集中資料記錄的對應關係,值為資料記錄中的欄位名稱。如果沒有設定該項則使用列索引與資料記錄中欄位的索引進行對應 
          width:列寬 
          align:列資料的對齊方式 
  
          hidden:是否隱藏列,預設為false 
          fixed:是否固定列寬,預設為false 
          menuDisabled:是否禁用列的上下文選單,預設為false 
          resizable:是否允許改變列寬,預設為true 
          sortable:是否允許排序,預設為true 
          renderer:設定列的自定義單元格渲染函式 
                傳入函式的引數有: 
                    value:資料的原始值 
                    metadata:後設資料物件,用於設定單元格的樣式和屬性,該物件包含的屬性有: 
                          css:應用到單元格TD元素上的樣式名稱 
                          attr:一個HTML屬性定義字串,例如'style="color:blue"' 
                    record:當前資料記錄物件 
                    rowIndex:單元格的行索引 
                    colIndex:單元格的列索引 
                    store:資料集物件 
    
          xtype:列渲染器型別,預設為gridcolumn,其它可選值有booleancolumn、numbercolumn、datecolumn、templatecolumn等 
  
          editable:是否可編輯,預設為true 
          editor:編輯器 
  
          groupName: 
          emptyGroupText: 
          groupable: 

3、Ext.grid.ColumnModel 
      主要配置項: 
          columns:欄位陣列 
          defaultSortable:是否進行預設排序,預設為false 
          defaultWidth:預設寬度 
  
      主要方法: 
          findColumnIndex( String col ):根據給定的dataIndex查詢列索引 
          getColumnById( String id ):取得指定id對應的列 
          getColumnCount( Boolean visibleOnly ):取得列總數 
          getColumnHeader( Number col ):取得列的表頭 
          getColumnId( Number index ):取得列id 
          getDataIndex( Number col ):取得列對應的資料欄位名 
          getIndexById( String id ):取得列索引 
          getTotalWidth( Boolean includeHidden ) 
          isCellEditable( Number colIndex, Number rowIndex ) 
          isFixed() 
          isHidden( Number colIndex ) 
          setColumnHeader( Number col, String header ) 
          setColumnWidth( Number col, Number width, Boolean suppressEvent ) 
          setDataIndex( Number col, String dataIndex ) 
          setEditable( Number col, Boolean editable ) 
          setEditor( Number col, Object editor ) 
          setHidden( Number colIndex, Boolean hidden ) 
          setRenderer( Number col, Function fn ) 
4、Ext.grid.AbstractSelectionModel 
      主要方法: 
            lock():鎖定選擇區域 
            unlock():解鎖選擇區域 
            isLocked():當前選擇區域是否被鎖定 
5、Ext.grid.CellSelectionModel 
      主要方法: 
            clearSelections( Boolean preventNotify ):清除選擇區域 
            getSelectedCell():取得當前選擇的單元格,返回一陣列,其格式:[rowIndex, colIndex] 
            hasSelection():當前是否有選擇區域 
            select( Number rowIndex, Number colIndex, [Boolean preventViewNotify], [Boolean preventFocus], [Ext.data.Record r] ):選擇指定單元格 
6、Ext.grid.RowSelectionModel 
      主要配置項: 
            singleSelect:是否單選模式,預設為false,即可以選擇多條資料 

      主要方法: 
            clearSelections( [Boolean fast] ):清除所有選擇區域 
            deselectRange( Number startRow, Number endRow ):取消範圍內的行選擇 
            deselectRow( Number row, [Boolean preventViewNotify] ):取消指定行的選擇狀態 
            each( Function fn, [Object scope] ):遍歷所有選擇行,並呼叫指定函式。當前被選行將傳入該函式中 
            getCount():得到選擇的總行數 
            getSelected():得到第一個被選記錄 
            getSelections():得到所有被選記錄的陣列 
            hasNext():判斷當前被選行之後是否還有記錄可以選擇 
            hasPrevious():判斷當前被選行之前是否還有記錄可以選擇 
            hasSelection():是否已選擇了資料 
            isIdSelected( String id ):判斷指定id的記錄是否被選擇 
            isSelected( Number/Record index ):判斷指定記錄或記錄索引的資料是否被選擇 
            selectAll():選擇所有行 
            selectFirstRow():選擇第一行 
            selectLastRow( [Boolean keepExisting] ):選擇最後行 
                  keepExisting:是否保持已有的選擇 
            selectNext( [Boolean keepExisting] ):選擇當前選擇行的下一行 
            selectPrevious( [Boolean keepExisting] ):選擇當前選擇行的上一行 
            selectRange( Number startRow, Number endRow, [Boolean keepExisting] ):選擇範圍內的所有行 
            selectRecords( Array records, [Boolean keepExisting] ):選擇一組指定記錄 
            selectRow( Number row, [Boolean keepExisting], [Boolean preventViewNotify] ):選擇一行 
                  row:行索引 
            selectRows( Array rows, [Boolean keepExisting] ):選擇多行 
                  rows:行索引陣列 
7、Ext.grid.CheckboxSelectionModel 
      主要配置項: 
            singleSelect:是否單選模式,預設為false,即可以選擇多條資料 
            checkOnly:是否只能通過點選checkbox列進行選擇,預設為false 
            sortable:是否允許checkbox列排序,預設為false 
            width:checkbox列的寬度,預設為20 
8、Ext.grid.RowNumberer 
      主要配置項: 
            header:行號列表頭顯示的內容 
            width:列寬,預設為23
9、Ext.grid.GridView 
      主要配置項: 
            enableRowBody:是否包含行體 
            sortAscText:表格標題選單中升序的文字描述 
            sortDescText:表格標題選單中降序的文字描述 
            columnsText:表格標題選單中列對應的文字描述 
            autoFill:是否自動擴充套件列以充滿整個表格,預設為false 
            forceFit:是否強制調整表格列寬以適用表格的整體寬度,防止出現水平滾動條,預設為false 

      主要方法: 
            focusCell( Number row, Number col ):將焦點移到指定單元格 
            focusRow( Number row ):將焦點移動指定行 
            getCell( Number row, Number col ):取得指定單元格對應的td元素 
            getHeaderCell( Number index ):取得指定表頭對應的td元素 
            getRow( Number index ):取得指定行對應的tr元素 
            getRowClass( Record record, Number index, Object rowParams, Store store ):得到附加到表格行上的樣式名 
                  record:當前行的資料記錄物件 
                  index:當前行的索引 
                  rowParams:渲染時傳入到行模板中的配置物件,通過它可以為行體定製樣式,該物件只在enableRowBody為true時才生效,可能的屬性如下: 
                        body:渲染到行體中的HTML程式碼片段 
                        bodyStyle:應用到行體tr元素style屬性的字串 
                        cols:應用到行體td元素colspan屬性的值,預設為總列數 
                  store:表格資料集 
            refresh( [Boolean headersToo] ):重新整理表格元件 
            scrollToTop():滾動表格到頂端

Ext.TabPanel:

  activeTab:初始啟用的tab,索引或者id值,預設為none 
      autoTabs:是否自動將帶有'x-tab'樣式類的div轉成tabs新增到TabPanel中,預設為false。 
            當該配置項設為true時,需要設定deferredRender為false,還必須使用applyTo。 
      deferredRender:是否延遲渲染,預設為true。 
      autoTabSelector:預設為'div.x-tab'。 

      resizeTabs:是否可以改變tab的尺寸,預設為false。 
      minTabWidth:tab的最小寬度,預設為30。 
      tabWidth:每個新增加的tab寬度,預設為120。 
      tabTip:tab的提示資訊 

      tabPosition:tab位置,可選值有top、bottom,預設為top。 
      enableTabScroll:是否允許Tab溢位時可以滾動,預設為false。 
      closable:tab是否可關閉,預設為false 

      scrollDuration:每次的滾動時長,預設為0.35毫秒。 
      scrollIncrement:每次的滾動步長,預設為100畫素。 
      wheelIncrement:每次滑鼠滑輪的滾動步長,預設為20畫素。 
2、主要方法: 
      activate( String/Panel tab ) 
      getActiveTab():獲取當前活動的tab 
      get( String/Number key ):根據元件id或者索引獲取元件 
      getItem(String id):根據tab id獲取tab 
      setActiveTab( String/Number item ) 
      remove( Component/String component, [Boolean autoDestroy] ) 
      removeAll( [Boolean autoDestroy] ) 
3、範例 

new Ext.TabPanel({   
    id: "mainTab",   
    renderTo: "div1",   
    width: 500,   
    height: 300,   
    activeTab: 0,   
    defaults: {   
        autoScroll: true,   
        autoHeight:true,   
        style: "padding:5"  
    },   
    items:[   
        {title:"normal", tabTip:"mormal", html:"tab1", iconCls:"add"},   
        {title:"ajax1", autoLoad:"messagebox.action", iconCls:"delete"},   
        {title:"ajax2", autoLoad:{url:"test.action", params:"p1=v1", nocache:true}, iconCls:"search"},   
        {title:"event", iconCls:"save", listeners:{activate:activateHandler}}   
    ],   
    enableTabScroll: true  
});   
  
function activateHandler(tab){   
    //alert(tab.title);   
}   
  
var index = 0;   
function addTab(){   
    var tabs = Ext.getCmp("mainTab");   
       
    var t = tabs.getItem("tab"+index);   
    if(t) tabs.remove(t);   
       
    tabs.add({   
        id: "tab" + (++index),   
        title: "NewTab" + index,   
        html: "new tab" + index,   
        closable: true  
    }).show();   
}   
  
//按鈕渲染到div1元素之前   
new Ext.Button({   
    text:"add tab",   
    handler:addTab,   
    iconCls:"add"  
}).render(document.body, "div1");  

 


在使用TabPanel時需要注意: 

 

       1、在建立Ext.TabPanel時deferredRender配置項經常會被忽略。該配置項的預設值是true。true表示只有在使用者第一次訪問 選項卡時,該選項卡的panel才會被渲染。 所以當我們有可能使用指令碼操作選項卡時,謹記將該配置項設定為false。 

       2、在FormPanel中使用TabPanel,如果在TabPanel中不定義deferredRender的值為false,那麼,當你使用 Load方法為Form載入資料,或使用setValue為沒有啟用過的Panel的控制元件賦值時,將會發生錯誤。原因是,在預設設定下 deferredRender為true,TabPanel並不會渲染所有Panel上的控制元件,只有在該Panel被啟用時才渲染控制元件,所以當你為這些控 件設定資料時,將會找不到這些控制元件,會出現錯誤。因而,在FormPanel中使用TabPanel,一定要在TabPanel中設定 deferredRender的值為false,強制TabPanel在Layout渲染時同時渲染所有Panel上的控制元件。

相關文章