一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Extjs 帶復(fù)選框的下拉框

 tjmarm 2013-10-30

  1. extjs4.1 demo目錄結(jié)構(gòu)

    2、CheckCombo.js:

     
    1. Ext.define('Ext.ux.CheckCombo',{
    2.     extend: 'Ext.form.field.ComboBox',
    3.     alias: 'widget.checkcombo',
    4.     multiSelect: true,
    5.     allSelector: false,
    6.     addAllSelector: false,
    7.     allText: 'All',
    8.     createPicker: function() {
    9.        var me = this,
    10.            picker,
    11.            menuCls = Ext.baseCSSPrefix + 'menu',
    12.            opts = Ext.apply({
    13.                pickerField: me,
    14.                selModel: {
    15.                    mode: me.multiSelect ? 'SIMPLE' : 'SINGLE'
    16.                },
    17.                floating: true,
    18.                hidden: true,
    19.                ownerCt: me.ownerCt,
    20.                cls: me.el.up('.' + menuCls) ? menuCls : '',
    21.                store: me.store,
    22.                displayField: me.displayField,
    23.                focusOnToFront: false,
    24.                pageSize: me.pageSize,
    25.                tpl: 
    26.             [
    27.                 '<ul><tpl for=".">',
    28.                     '<li role="option" class="' + Ext.baseCSSPrefix + 'boundlist-item"><span class="x-combo-checker"> </span> {' + me.displayField + '}</li>',
    29.                 '</tpl></ul>'
    30.             ]
    31.            }, me.listConfig, me.defaultListConfig);
    32.        picker = me.picker = Ext.create('Ext.view.BoundList', opts);
    33.        if (me.pageSize) {
    34.            picker.pagingToolbar.on('beforechange', me.onPageChange, me);
    35.        }        
    36.        me.mon(picker, {
    37.            itemclick: me.onItemClick,
    38.            refresh: me.onListRefresh,
    39.            scope: me
    40.        });
    41.        me.mon(picker.getSelectionModel(), {
    42.            'beforeselect': me.onBeforeSelect,
    43.            'beforedeselect': me.onBeforeDeselect,
    44.            'selectionchange': me.onListSelectionChange,
    45.            scope: me
    46.        });
    47.        return picker;
    48.     },
    49.     getValue: function()
    50.     {
    51.             return this.value.join(',');
    52.     },
    53.     getSubmitValue: function()
    54.     {
    55.         return this.getValue();
    56.     },
    57.     expand: function()
    58.     {
    59.        var me = this,
    60.            bodyEl, picker, collapseIf;
    61.        if (me.rendered && !me.isExpanded && !me.isDestroyed) {
    62.            bodyEl = me.bodyEl;
    63.            picker = me.getPicker();
    64.            collapseIf = me.collapseIf;
    65.            //顯示
    66.            picker.show();
    67.            me.isExpanded = true;
    68.            me.alignPicker();
    69.            bodyEl.addCls(me.openCls);
    70.             if(me.addAllSelector == true && me.allSelector == false)
    71.             {
    72.                 me.allSelector = picker.getEl().insertHtml('afterBegin''<div class="x-boundlist-item" role="option"><span class="x-combo-checker"> </span> '+me.allText+'</div>'true);
    73.                 me.allSelector.on('click'function(e)
    74.                 {
    75.                     if(me.allSelector.hasCls('x-boundlist-selected'))
    76.                     {
    77.                         me.allSelector.removeCls('x-boundlist-selected');
    78.                         me.setValue('');
    79.                         me.fireEvent('select', me, []);
    80.                     }
    81.                     else
    82.                     {
    83.                         var records = [];
    84.                         me.store.each(function(record)
    85.                         {
    86.                             records.push(record);
    87.                         });
    88.                         me.allSelector.addCls('x-boundlist-selected');
    89.                         me.select(records);
    90.                         me.fireEvent('select', me, records); 
    91.                     }
    92.                 });
    93.             }
    94.            // 監(jiān)聽
    95.            me.mon(Ext.getDoc(), {
    96.                mousewheel: collapseIf,
    97.                mousedown: collapseIf,
    98.                scope: me
    99.            });
    100.            Ext.EventManager.onWindowResize(me.alignPicker, me);
    101.            me.fireEvent('expand', me);
    102.            me.onExpand();
    103.        }
    104.     },
    105.     onListSelectionChange: function(list, selectedRecords) 
    106.     {
    107.        var me = this,
    108.            isMulti = me.multiSelect,
    109.            hasRecords = selectedRecords.length > 0;
    110.        
    111.        if (me.isExpanded) {
    112.            if (!isMulti) {
    113.                Ext.defer(me.collapse, 1, me);
    114.            }
    115.           
    116.     
    117.            if (isMulti || hasRecords) {
    118.                me.setValue(selectedRecords, false);
    119.            }
    120.            if (hasRecords) {
    121.                me.fireEvent('select', me, selectedRecords);
    122.            }
    123.            me.inputEl.focus();
    124.        }
    125.        
    126.         if(me.addAllSelector == true && me.allSelector != false)
    127.         {
    128.             if(selectedRecords.length == me.store.getTotalCount()) me.allSelector.addCls('x-boundlist-selected');
    129.             else me.allSelector.removeCls('x-boundlist-selected'); 
    130.         }    
    131.     }
    132. });

    3、checkbox-combobox.html:

     
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www./1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>MHZG.NET-extjs4.1帶復(fù)選框的下拉框</title>
    6. <link rel="stylesheet" type="text/css" href="/resources/css/ext-all.css" />
    7. <script type="text/javascript" src="/ext-all-debug.js"></script>
    8. <script type="text/javascript" src="/locale/ext-lang-zh_CN.js"></script>
    9. <style type="text/css"
    10. body{ padding:10px;}
    11. .x-combo-checker { background-position: 50% -2px; margin-left: 1px; background-color: transparent; background-image: url("/resources/themes/images/default/grid/unchecked.gif"); background-position: -1px -1px; background-repeat: no-repeat; height: 14px; width: 14px; display: inline-block; }
    12. .x-boundlist-selected .x-combo-checker { background-image: url("/resources/themes/images/default/grid/checked.gif"); }
    13.    
    14. </style>
    15. <script type="text/javascript">
    16. Ext.Loader.setConfig({ enabled: true });
    17. Ext.Loader.setPath('Ext.ux''/ux');
    18. var store = Ext.create('Ext.data.Store',{
    19.     fields: ['id''type'],
    20.     data: [
    21.         {id: '1', type: '選項(xiàng)一 extjs4.1'},
    22.         {id: '2', type: '選項(xiàng)二 extjs4'},
    23.         {id: '3', type: '選項(xiàng)三 extjs 4.1 下拉復(fù)選框'},
    24.         {id: '4', type: '選項(xiàng)四 mhzg.net'},
    25.         {id: '5', type: '選項(xiàng)五 mhzg extjs4'},
    26.         {id: '6', type: '選項(xiàng)六 mhzg.net extjs 4.1'},
    27.         {id: '7', type: '選項(xiàng)七 exjts4.x'}
    28.     ]
    29. });
    30. Ext.onReady(function(){
    31.     //沒有全選功能的CheckCombo
    32.     Ext.create('Ext.ux.CheckCombo',{
    33.         renderTo: 'cbo',
    34.         width:180,
    35.         id:'box1',
    36.         valueField: 'id',
    37.         displayField: 'type',
    38.         store: store
    39.     });
    40.     //帶全選功能的CheckCombo
    41.     Ext.create('Ext.ux.CheckCombo',{
    42.         renderTo: 'cba',
    43.         valueField: 'id',
    44.         displayField: 'type',
    45.         id:'box2',
    46.         width:180,
    47.         allText:'全選',//默認(rèn)字符是All
    48.         store: store,
    49.         addAllSelector: true
    50.     });
    51. })
    52. function getValues(v){
    53.     var data = Ext.getCmp(v).getValue();
    54.     alert(data);
    55. }
    56. </script>
    57. </head>
    58. extjs 4.1 沒有全選功能的下拉復(fù)選框<br /><br />
    59. <div id="cbo"></div>
    60. <input type="button" onclick="getValues('box1');" value="獲取值" /><br /><br />
    61. -------------------------------------分割線-------------------------------------<br /><br />
    62. extjs 4.1 下拉復(fù)選框,并帶全選功能<br /><br />
    63. <div id="cba"></div>
    64. <input type="button" onclick="getValues('box2');" value="獲取值" />
    65. <body>
    66. </body>
    67. </html>

    最后,需要注意的是,無論我們?nèi)绾谓M建目錄結(jié)構(gòu),只要我們將目錄結(jié)構(gòu)順序弄明白了,一切都好解決!



    源碼下載地址: http://pan.baidu.com/s/1zht1s

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    99久久婷婷国产亚洲综合精品| 熟女一区二区三区国产| 99久久精品午夜一区| 儿媳妇的诱惑中文字幕| 殴美女美女大码性淫生活在线播放| 亚洲男人的天堂久久a| av在线免费观看在线免费观看| 中文字幕91在线观看| 久久天堂夜夜一本婷婷| 亚洲精品中文字幕无限乱码| 国产福利在线播放麻豆| 日本免费一本一二区三区| 国产精品白丝久久av| 国产精品一区日韩欧美| 久久精品视频就在久久| 日韩欧美一区二区不卡看片| 精品推荐久久久国产av| 国产又长又粗又爽免费视频| 欧美精品久久99九九| 最近的中文字幕一区二区| 免费观看日韩一级黄色大片| 精品国产亚洲av成人一区| 制服丝袜美腿美女一区二区| 高清免费在线不卡视频| 人妻久久一区二区三区精品99| 国产毛片对白精品看片| 国产精品午夜福利免费阅读| 国产一区二区精品高清免费| 好骚国产99在线中文| 日韩性生活片免费观看| 欧美精品亚洲精品日韩精品| 欧美日韩国产综合特黄| 国内午夜精品视频在线观看| 欧美尤物在线视频91| 好吊色免费在线观看视频| 久久99精品国产麻豆婷婷洗澡 | 欧美不卡一区二区在线视频| 国产一区欧美一区日本道| 亚洲人妻av中文字幕| 免费大片黄在线观看日本| 东北老熟妇全程露脸被内射|