`
chenxueyong
  • 浏览: 342295 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ext实现标签式浏览内容

阅读更多

Ext.onReady(function(){
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
   
    var northCpt = new Ext.BoxComponent({
        region: 'north',
        id: 'north-panel',
        el: 'north',
        height: 36,
           margins: '0 0 0 0'
    });

    var southCpt = new Ext.BoxComponent({
        region: 'south',
        id: 'south-panel',
        el: 'south',
        split: true,
        height: 20,
        margins: '0 0 0 0'
    });
   
    var westCpt = new Ext.Panel({
           region: 'west',
        id: 'west-panel',
        el: 'west',
        split: true,
        width: 180,
        minSize: 160,
        maxSize: 260,
        margins: '0 0 0 0',
        title: 'Navigation',
        collapsible: true,
        layout: 'accordion',
        layoutConfig: {animate: true},
        items: [{
               title: 'Favorite',
               border: false,
            iconCls: 'navigation'
        }, {
            title: 'Navigation',
            border: false,
            html: '<div id="tree-div" style="overflow: auto; width: 100%; height: 100%"></div>',
            iconCls: 'navigation'
        }, {
            title: 'Message Center',
            border: false,
            iconCls: 'navigation'
        }, {
           title: 'System Configuration',
           border: false,
           iconCls: 'navigation'
        }]
    });
   
    var tabs = new Ext.TabPanel({
        region: 'center',
        id: 'center-panel',
        el: 'center',
        bbar: new Ext.Toolbar(),
        deferredRender: false,
        resizeTabs: true,
        minTabWidth: 40,
        tabWidth: 90,
        defaults: {autoScroll: true},
        enableTabScroll: true,
        margins: '0 0 0 0'
    });   
    tabs.getBottomToolbar().setHeight(24);
   
    var tab = tabs.add({
        id: 'home',
        title: 'Home',
        closable: false,
        tabWidth: 20,
        autoScroll: true
    });
    tabs.setActiveTab(tab);
    tabs.on('tabchange', function(tabs, tab){updateTab(findNodeByTab(tab), tab);});

    var viewport = new Ext.Viewport({
        el: 'Ajax Viewport',
           layout: 'border',
           items: [northCpt, southCpt, westCpt, tabs]
    });

    var Tree = Ext.tree;
    // set the root node
    var root = new Tree.AsyncTreeNode({
        id: 'root',
        text: 'Ajax Tree',
        draggable: false
    });

    var tree = new Tree.TreePanel({
        id: 'tree',
        renderTo: 'tree-div',
        root: root,
        autoScroll: true,
        animate: true,
        enableDD: false,
        border: false,
        rootVisible: false,
        containerScroll: true,
        loader: new Tree.TreeLoader({
            dataUrl: '../../erp/common/navigation.jsp'
        })
    });
    tree.on('click', treeClick);

    //end loding
    setTimeout(
        function() {
            Ext.get('loading').remove();
            Ext.get('loading-mask').fadeOut({remove: true});
        }, 250
    );
   
    function treeClick(node, e) {
        e.stopEvent();
        //判断是否已经打开该面板
        if (node.isLeaf()) {           
            var tab = tabs.getItem(node.id + '-tab');
            if ('undefined' == typeof tab) addTab(node);
            else updateTab(node, tab);
        }
        else {
            if (!node.isExpanded()) node.expand();
            else node.collapse();
        }
    }
   
    function findNodeByTab(tab) {
        if ('home' == tab.id)
            return null;
        var id = tab.id;
        id = id.replace('-tab', '');       
        return tree.getNodeById(id);
    }

    // 在中间的面板加入tab
    function addTab(node) {   
        var tab = new Ext.Panel({
            id: node.id + '-tab',
            title: node.text,
            closable: true,
            layout: 'fit',
            tbar: new Ext.Toolbar(),
            //html: '
<iframe id="' + node.id + 'Frame" src="' + node.attributes.href + '" width="100%" height="100%" frameborder="0"></iframe>',
            //html: '
<div><ui:include src="' + node.attributes.href + '"></ui></div>',
            autoLoad: {url: node.attributes.url, nocache: true, scope: this, scripts: true},
            autoScroll: true});
        activeNode = node;
        tabs.add(tab);
        tabs.setActiveTab(tab);
    }

    // 更新tab内容
    function updateTab(node, tab) {
        activeNode = node;
        tabs.setActiveTab(tab);
    }
});

分享到:
评论

相关推荐

    Ext的Tab标签封装

    "Ext的Tab标签封装"指的是使用ExtJS库创建的TabPanel组件,它允许用户在一个区域内通过点击不同的标签来展示不同的内容面板。 在描述中提到的"兼容Firefox 和 IE浏览器",这意味着该封装方法考虑到了跨浏览器的兼容...

    ext 实例集

    例如,"explorer"这个文件可能是EXT文件浏览器的示例,它可能展示了如何使用EXT的数据模型、视图和控制器来实现文件系统的浏览、选择和操作功能。 EXT的核心特性包括数据绑定,这意味着组件的状态可以自动与后台...

    纵向Tab ---ext

    这种设计通常用于解决屏幕空间有限或需要清晰展示大量Tab标签的情况,使得用户可以更方便地浏览和切换不同内容区域。 【描述】:虽然描述中提到的是一个空值,但根据提供的博文链接...

    远程文件管理Ext.rar

    在"用Ext编写的远程文件管理.doc"文档中,可能会介绍如何使用ExtJS创建一个交互式的文件管理系统,包括文件的浏览、上传、下载、删除等功能,以及如何自定义各种组件,如树形视图(TreeField)来表示目录结构。...

    C# 在桌面程序里集成webbrowser和Ext

    在C#桌面程序中集成WebBrowser控件,开发者可以利用该控件提供的API来实现诸如加载网页、执行JavaScript、交互式操作等功能。例如,以下代码示例展示了如何创建并使用WebBrowser控件: ```csharp using System....

    Ext4.1.0Doc_ZH.zip

    "extjs4.1.0 doc api"这部分标签明确了文件的核心内容是关于ExtJS 4.1.0的API文档,API文档是软件开发中非常关键的一部分,它详细列出了库或框架的所有接口,帮助开发者了解如何正确调用和使用这些接口来实现所需的...

    龙门物流管理系统(Ext+SSH)130221.rar.tar.gz

    Servlet具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为...

    图书管理系统(struts+hibernate+spring+ext)130221.rar.tar.gz

    Servlet具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为...

    Extjs之--图片浏览器

    博文链接指向了ITEYE博客上的一篇文章,虽然内容未给出,但通常这类文章会介绍如何使用Ext JS创建图片浏览器的步骤,可能包含代码示例、关键组件的使用以及实现特定功能的方法。 标签“源码”表明可能有实际的代码...

    extjs控件列表

    - **用途**: 实现多标签页界面,便于组织大量信息。 **Ext.tree.TreePanel** - **描述**: 树型面板,用于展示层次结构的数据。 - **用途**: 文件系统、目录结构的可视化表示。 **Ext.FlashComponent** - **描述**:...

    页面滑动效果

    在IT行业中,页面滑动效果是用户界面设计中不可或缺的一部分,尤其在移动设备上,它提供了流畅的用户体验,使得用户可以轻松浏览和交互内容。在本案例中,我们聚焦于使用Sencha Touch中的Ext.Carousel组件来实现这一...

    菜单树,包含右击菜单 项目直接把js 导入 如果写成动态读取数据库要将代码稍微改改.树状表包含右击菜单

    在这个案例中,标签"ajax", "jquery", "dwr", 和 "ext js" 提供了关于所用技术的信息。 1. **Ajax**(异步JavaScript和XML):这是一种网页开发技术,允许页面在不重新加载整个页面的情况下与服务器交换数据并更新...

    slider js进度条

    虽然标题提及的是“slider js”,但“Ext js”的标签可能意味着在实际项目中,slider js可能会与Ext js一起使用,或者是在一个使用Ext js构建的环境中实现滑动条功能。 【知识点详解】: 1. **Slider JS基本概念**...

    ExtAspNet.Examples ExtAspNet框架

    这个框架允许开发者在服务器端使用C#或VB.NET编写代码,同时在客户端利用Ext JS的强大力量构建交互式的用户界面。 标题"ExtAspNet.Examples"表明这是一个包含示例代码的资源,用于演示如何使用ExtAspNet框架进行...

    extjs .net

    Ext JS是一个强大的JavaScript库,主要用于创建交互式、富客户端的Web应用程序。它提供了大量的UI组件,包括网格、表格、表单、图表等,而".net"则表明这里使用的是微软的.NET框架,可能是ASP.NET,用于后端开发和...

    extjs4 中文api

    对于获取多个具有相同特征的DOM节点,可以使用选择器方法,如`Ext.select('p')`获取所有`&lt;p&gt;`标签。返回的`Ext.CompositeElement`对象可通过`each()`方法进行遍历处理。 以上概述了Extjs4的获取、环境搭建、基础...

    Firefox和Chrome的扩展程序可以为任何网址添加评论

    这可能是通过在页面上插入一个交互式的评论框,或者通过其他方式集成社交平台的评论系统来实现的。 在“JavaScript开发-其它杂项”这个标签中,我们可以推测这个项目可能涉及到JavaScript的多个方面,包括DOM操作、...

Global site tag (gtag.js) - Google Analytics