手记

ExtJs 的abPanel的用法

啥也不说了,直接上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
     <script type="text/javascript" src="../adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="../ext-all.js"></script> 
    <style type="text/css">
        *{font-size:12px;line-height:130%;}                
        .list {list-style:square;width:500px;padding-left:16px;}
        .list li{padding:2px;font-size:8pt;}
        pre {
           font-size:11px; 
        }
        .x-tab-panel-body .x-panel-body {
            padding:10px;
        }
        /* default loading indicator for ajax calls */
        .loading-indicator {
            font-size:8pt;
            background-image:url('../resources/images/default/grid/loading.gif');
            background-repeat: no-repeat;
            background-position: left;
            padding-left:20px;
        }
        .new-tab {
            background-image:url(../examples/feed-viewer/images/new_tab.gif) !important;
        }
        .tabs {
            background-image:url( ../examples/desktop/images/tabs.gif ) !important;
        }
    </style>
    <title>Tabs Demo</title>
</head>
<body>
<script type="text/javascript">
    Ext.onReady(function() {
        var tabs = new Ext.TabPanel({
            renderTo: Ext.getBody(),
            resizeTabs: true, // turn on tab resizing
            minTabWidth: 115,
            tabWidth: 135,
            enableTabScroll: true,
            width: 600,
            height: 150,
            defaults: { autoScroll: true },
            plugins: new Ext.ux.TabCloseMenu(),
            tbar: [{ text: '新建Tab', iconCls: 'new-tab', handler: addTab}]
        });
        // tab generation code
        var index = 0;
        while (index < 2) {
            addTab();
        }
        function addTab(tab) {
            if (tabs.items.length > 9) {
                Ext.MessageBox.alert("提示", "最多只能新建10个tab!");
                //tabs.tbar.setVisible(false);
                return false;
            }
            tabs.add({
                title: 'New Tab ' + (++index),
                iconCls: 'tabs',
                html: 'Tab Body ' + (index) ,
                closable: true
            }).show();
        }
    });
   
    //右键弹出菜单
    Ext.ux.TabCloseMenu = function() {
        var tabs, menu, ctxItem;
        this.init = function(tp) {
            tabs = tp;
            tabs.on('contextmenu', onContextMenu);
        }
        function onContextMenu(ts, item, e) {
            if (!menu) { // create context menu on first right click
                menu = new Ext.menu.Menu([{
                    id: tabs.id + '-close',
                    text: '关闭当前',
                    handler: function() { tabs.remove(ctxItem); }
                }, {
                    id: tabs.id + '-close-others',
                    text: '关闭其它',
                    handler: function() {
                        tabs.items.each(function(item) {
                            if (item.closable && item != ctxItem) {
                                tabs.remove(item);
                            }
                        });
                    }
}]);
                }
                ctxItem = item;
                var items = menu.items;
                items.get(tabs.id + '-close').setDisabled(!item.closable);               
//                //只剩一个时,禁止关闭
//                if (tabs.items.length == 1) {                   
//                    items.get(tabs.id + '-close').setDisabled(true);
//                }                
                var disableOthers = true;
                tabs.items.each(function() {
                    if (this != item && this.closable) {
                        disableOthers = false;
                        return false;
                    }
                });
                items.get(tabs.id + '-close-others').setDisabled(disableOthers);
                menu.showAt(e.getPoint());
            }
        };
</script>
</body>
</html>


0人推荐
随时随地看视频
慕课网APP