Ext.form.ComboBox常用屬性詳解


Ext.form.ComboBox常用屬性詳解

標簽: Extjs js combo



js 代碼
  1. var combo = new Ext.form.ComboBox({  
  2.     store : new Ext.data.SimpleStore({  
  3.         fields : ['value', 'text'],  
  4.         data : [['1001', '小兒迪巧'], ['1002', '成人迪巧'], ['1003', '秀源']]  
  5.     }),  
  6.     hiddenName:'product_code',//提交到后台的input的name 
  7.     mode:'local',//數據加載模式,'local'本地加載,'remote'遠程加載
  8.     valueField : 'value',   //值字段  
  9.     displayField : 'text',  //顯示字段  
  10.     value:'1001',       //默認值,要設置為提交給后台的值,不要設置為顯示文本  
  11.     emptyText : '請選擇',  //提示信息  
  12.     mode : 'local', //數據加載模式,local代表本地數據  
  13.     triggerAction : 'all',  // 顯示所有下列數據,一定要設置屬性triggerAction為a  
  14.     readOnly : false,   //只讀,為true時不能編輯不能點擊  
  15.     editable:false,     //是否可編輯,為true時可以手寫錄入  
  16.     pageSize:0      //當設置大於0時會顯示分頁按鈕
  17. }) 

如果在EditorGrid中使用Combo控件,編輯完后會發現顯示的值都是編碼而不是顯示值,可以ColumnMode中加入renderer方法對顯示值進行修改。下面是出自Combo源碼里的例子。
js 代碼
  1. Ext.util.Format.comboRenderer = function(combo){  
  2.     return function(value){  
  3.         var record = combo.findRecord(combo.{@link #valueField}, value);  
  4.         return record ? record.get(combo.{@link #displayField}) : combo.{@link #valueNotFoundText};  
  5.     }  
  6. }  
  7.   
  8. // create the combo instance  
  9. var combo = new Ext.form.ComboBox({  
  10.     {@link #typeAhead}: true,  
  11.     {@link #triggerAction}: 'all',  
  12.     {@link #lazyRender}:true,  
  13.     {@link #mode}: 'local',  
  14.     {@link #store}: new Ext.data.ArrayStore({  
  15.         id: 0,  
  16.         fields: [  
  17.             'myId',  
  18.             'displayText'  
  19.         ],  
  20.         data: [[1, 'item1'], [2, 'item2']]  
  21.     }),  
  22.     {@link #valueField}: 'myId',  
  23.     {@link #displayField}: 'displayText'  
  24. });  
  25.   
  26. // snippet of column model used within grid  
  27. var cm = new Ext.grid.ColumnModel([{  
  28.        ...  
  29.     },{  
  30.        header: "Some Header",  
  31.        dataIndex: 'whatever',  
  32.        width: 130,  
  33.        editor: combo, // specify reference to combo instance  
  34.        renderer: Ext.util.Format.comboRenderer(combo) // pass combo instance to reusable renderer  
  35.     },  
  36.     ...  
  37. ]); 
Combo使用起來非常方便,還有很多屬性我們平時沒有用到,都設有默認值,比如錄入幾個字后進行數據查詢、顯示模板,下拉顯示高度等。如果對它的展示內容或方式不滿意,可以修改屬性對其進行擴展。源碼內注釋非常詳細,可以根據提示的信息對它進行改造。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM