`
JavaCrazyer
  • 浏览: 2990468 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Ext之Tree与Tab组合问题

阅读更多

ExtTree与ExtTab结合的时候经常会出现点击左边Tree动态切换右边Tab,并且Tab内容也会改变的问题,下面我说的是例子是这样的

整个侧边栏有两颗树:

第一棵树,点击时切换到它对应的Tab页,这个Tab页内容是ExtGrid,并且点击树节点时Tab内容会动态改变

第二棵树,点击时切换到它对应的Tab页,这个Tab也内容是iframe嵌入的页面,点击子节点也会动态改变Tab内容

侧重讲的是切换 【 tabPanel.setActiveTab(diagrampanel);】和Grid内容的动态改变

代码如下

===================这是第一棵树=====================================

 

var treepanel = new Tree.TreePanel( {

rootVisible : true, // 设为false将隐藏根节点,很多情况下,我们选择隐藏根节点增加美观性

border : true, // 有边框

animate : true, // 动画效果

autoScroll : true, // 自动滚动

containerScroll : true,

loader : treeloader,

useArrows : true,

checkModel : 'cascade', // 对树的级联多选

onlyLeafCheckable : false,

listeners:{

         click:function(node,e){

                 var docpanel = tabPanel.getComponent("docpic");//这里获取TabPanel里面与之对应的Tab

                 tabPanel.setActiveTab(docpanel);

  if(node.text=="文档"){

         return ;

   }

                 searchFn(node.attributes.id)//这里我用来动态改变Grid的内容

                }             

            } 




});

    var rootnode = new Tree.AsyncTreeNode( {

       id : 'cate_root',

text : '文档',

draggable : false,

url:path+'ExtJsp/about.jsp'



});

treepanel.setRootNode(rootnode);

treepanel.on('beforeload', function(node) {

treepanel.loader.dataUrl = path+'tree/displayDocTree.action?id=' + node.id; 

});

//改变Grid内容的方法,其实与带搜索框的Grid产生的效果一样,就是传递最基本的参数

  function searchFn(CId) {   
            // 获取Grid   
            var grid = Ext.getCmp("docGrid");   
            if(grid == null) {   
                Ext.MessageBox.show({   
                    title:      '提示信息',   
                    msg:        '找不到列表控件!',   
                    buttons:    Ext.MessageBox.OK,   
                    icon:       Ext.MessageBox.ERROR   
                });    
                return;   
            }   
            // 获取Grid中的数据存储   
            var store = grid.store;   
            if(store == null) {   
                Ext.MessageBox.show({   
                    title:      '提示信息',   
                    msg:        '找不到数据适配器!',   
                    buttons:    Ext.MessageBox.OK,   
                    icon:       Ext.MessageBox.ERROR   
                });    
                return;   
            }   
            // 把数据加载到数据存储中   
            store.load({   
                // 传一些搜索参数   
                params:{   
                    start:      0,   
                    limit:      20  
                }   
            });   
            // 把参数保存到数据存储中(把上面除了start和limit不复制之外,把全部复制下来就可以了)   
            store.on('beforeload',function() {   
                Ext.apply(   
                this.baseParams,   
                {   
                   CId:CId 
                });   
            });   
        }  
 
=====================这是第二棵树=======================
    
var Tree1 = Ext.tree;
var treeloader1 = new Tree1.TreeLoader( {
dataUrl : path+"tree/displayDiagramTree.action?id='A1'" 
});


var diagramtree = new Tree1.TreePanel( {
rootVisible : true, // 设为false将隐藏根节点,很多情况下,我们选择隐藏根节点增加美观性 
border : true, // 有边框 
animate : true, // 动画效果 
autoScroll : true, // 自动滚动 
containerScroll : true, 
loader : treeloader1, 
useArrows : true, 
checkModel : 'cascade', // 对树的级联多选 
onlyLeafCheckable : false , 
listeners:{ 
    click:function(node,e){
             var myUrl='<iframe  width="100%" height="100%"   frameborder=0 src=${base}/ExtJsp/diagrams/'+node.attributes.id+'.jsp></iframe>';
             var diagrampanel = tabPanel.getComponent("diagrampic");
             tabPanel.setActiveTab(diagrampanel);
             if(node.text=="查看总图"){
             return; 
    }else{ 
                 diagrampanel.body.dom.innerHTML=myUrl;//这里动态改变Tab的html内容
             }
          
           }             
     } 


}); 
  var rootnodee = new Tree1.AsyncTreeNode( {
       id : 'diagram_root', 
text : '查看总图', 
draggable : false, 
url:path+'ExtJsp/about.jsp' 

}); 
  diagramtree.setRootNode(rootnodee);
  diagramtree.on('beforeload', function(node) {
diagramtree.loader.dataUrl = path+'tree/displayDiagramTree.action?id=' + node.id;  
}); 
 

====================下面这个是TabPanel=================
 
  var tabPanel = new Ext.TabPanel({//设置TAB选项
 id:'p4', 
     height:570,//设置高度 
     //width:855, 
     activeTab:0, 
     animScroll:true,//可以滚动的 
     enableTabScroll:true, 
     layoutOnTabChange:true, 
     deferredRender:false, 
     html:'<img src="${base}/images/bg.jpg"/>', 
     items:[{title:'文档管理', 
     id:'docpic', 
       items:[docGrid]}, 
       {title:'流程图',id:'diagrampic',html:'<iframe  width=100% height=100%   frameborder=0 src="${base}/ExtJsp/diagrams/b15228b7-53a8-11df-bcda-86f3311bf26f.jsp"></iframe>'}], 
         listeners:{ 
         tabchange : function(tab,panel){ 
             //alert(panel.title); 
             //tab.remove(panel); 
              
         } 
     } 
   }); 
 
4
1
分享到:
评论

相关推荐

    Ext4+JSON+Servlet+Tree构建Web应用框架

    Ext4+JSON+Servlet/Struts2+Ext.tree.Panel+Ext.tab.Panel构建Web应用系统框架

    ExtJsByZheng.rar_ExtJsByZheng_ext_ext 标签_ext tree_grid

    Ext基本使用入门例子:包括布局,窗口,Tab,Tree,grid等,后台使用Servlet。可以直接在MyEclipse6中运行。

    tree with tab

    var westPanel = Ext.create('Ext.tree.Panel', { title : '菜单', region : 'west', margins : '0 5 0 0', width : 200, store : store1, rootVisible : false, listeners : { ...

    EXT 布局 tab布局 普通拖拽 异步加载的树 节点可以编辑的树

    4.mainPage.html为tab布局,右面为tree中间为tab页面。 5.tz-normal-test.html为普通拖拽的练习。 6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree...

    Ext例子及布局问题

    4.mainPage.html为tab布局,右面为tree中间为tab页面。 5.tz-normal-test.html为普通拖拽的练习。 6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree节点...

    Ext Js权威指南(.zip.001

    9.5.1 标签面板的构成及其运行流程:ext.tab.panel、ext.tab.bar与ext.tab.tab / 458 9.5.2 标签面板的配置项、属性、方法和事件 / 462 9.5.3 使用标签页 / 463 9.5.4 可重用的标签页 / 465 9.6 视图与选择模型...

    ext 做的书目系统Demo

    Exlipse项目`~部署到tomcat下后直接敲 http://localhost:8080/cdab访问 主要使用了ext的grid 分组以及tab和tree

    extjs4.0 实现了主页面框架 动态菜单 例子 表单 ajax

    banner使用Ext.panel.Panel,通过toolbar来放置按钮),包括左侧动态菜单实现(采用Ext.tree.Panel)动态从数据库加载数据来显示菜单(后台代码也在了通过json进行数据传输),内容区域采用tab页得形式来显示,点击...

    ExtJSWeb应用程序开发指南(第2版)

    4.1.12 Ext.form.field.ComboBox组合框 4.1.13 Ext.form.field.Time时间选择框 4.1.14 Ext.form.field.Date日期选择框 4.1.15 Ext.form.field.Hidden隐藏字段 4.1.16 Ext.form.field.HtmlEditor编辑器字段 ...

    ExtAspNet_v2.3.2_dll

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    Jquery特效大全

    (5)模仿ext的tab选项卡 6 (6) 8 (7)De-Constructing Accordion and Hover Effects with jQuery 8 (8)导航到页内指定位置 8 (10) Sexy Drop Down Menu w/ jQuery & CSS 9 (11) A Different Top Navigation 9 ...

    一个支持annotation的SSH整合示例项目

    卷 (USB)Project 的文件夹 PATH 列表 卷序列号码为 0006EE44 CCBE:F425 I:. │ .project │ pom.xml │ pom.xml~ │ text.txt │ ├─.settings │ org.maven.ide.eclipse.prefs ...│ │ org.eclipse.wst.common....

    Timer 25: 极简计时-crx插件

    语言:Deutsch,English,Français,español,...代码及问题报告:• Github 项目页面:https://github.com/kyan001/WebExtensions/tree/master/ChromeExt_Timer25• 帮助 & Bug 提交:https://github.com/kyan001/WebExte

    ELDK使用与开发手册

    接下来则是描述如何配置和编译U-Boot使之适用于某个特定的平台,以及如何安装和在该硬件平台上运行。 下一步的工作是配置、建立和安装Linux。我们使用SELF(Simple Embedded Linux Framework)来展示如何建立一个开发...

    unigui0.83.5.820

    - TUniListBox: Items are not rendered if placed on UniPageControl invisible Tab - ISAPI: Bug when pathInfo contains Unicode chars - TUniLabel Text alignment - UniDBGrid: _OnDataLoaded may be called...

    lichee_20170502_1607_全志R16的linux系统编译需要改动的文件_使用parrotv1.1的内核_没有外层目录.7z

    d/buildroot-config/conf.o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/zconf.tab.o -o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/...

    linux全志R16的linux系统编译的资料_20170502_1655.7z

    d/buildroot-config/conf.o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/buildroot-config/zconf.tab.o -o /home/wwt/linux_r16/lichee/out/sun8iw5p1/linux/common/buildroot/build/...

    Bochs - The cross platform IA-32 (x86) emulator

    [2803538] Show flags for pages when using "info tab" ------------------------------------------------------------------------- Changes in 2.4.5 (April 25, 2010): Brief summary : - Major configure/...

Global site tag (gtag.js) - Google Analytics