`
JetMah
  • 浏览: 72841 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ExtJS hack: Add multiple toolbars to a Panel

阅读更多
原文出处: http://www.javatang.com/archives/2010/03/21/1529393.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

在ExtJS中实现多行工具栏的效果

 

hack code:

  1. /**
  2. * ExtJS hack: Add multiple toolbars to a Panel
  3. *
  4. * @author Jet Ma (jetmah(at)gmail(dot)com)
  5. */
  6. // 将原来的onRender方法进行重定义,以免造成递归调用!
  7. // rename the original onRender method to avoid call itself
  8. Ext.Panel.prototype.originalonRender = Ext.Panel.prototype.onRender;
  9. // 扩展onRender方法,实现在Toolbar中增加多行
  10. // override onRender method
  11. Ext.Panel.prototype.onRender = function(ct, position) {
  12.     this.originalonRender(ct, position);
  13.    
  14.     // 增加使用rowtbar添加换行的Toolbar
  15.     // use the custom rowtbar argument to add it to this TopToolbar
  16.     if(this.tbar && this.rowtbar){
  17.         var rowtbar = this.rowtbar;
  18.         if(!Ext.isArray(rowtbar))
  19.             return;
  20.        
  21.         for(var i = 0; i < rowtbar.length; i ++) {
  22.             new Ext.Toolbar(rowtbar[i]).render(this.tbar);
  23.         }
  24.     }
  25.    
  26.     // 增加使用rowbbar添加换行的Bottombar
  27.     // use the custom rowbbar argument to add it to this BottomToolbar
  28.     if(this.bbar && this.rowbbar) {
  29.         var rowbbar = this.rowbbar;
  30.         if(!Ext.isArray(rowbbar))
  31.             return;
  32.            
  33.         for(var i = 0; i < rowbbar.length; i ++) {
  34.             new Ext.Toolbar(rowbbar[i]).render(this.bbar);
  35.         }
  36.     }
  37. }

usage:

  1. var panel = new Ext.Panel({
  2.     //...   
  3.     tbar: [{text: 'button one'}, {text: 'button two'}],   
  4.     rowtbar: [       
  5.         [{text: 'row1 buttone 1'}, {text: 'row1 button2'}],      
  6.         [{text: 'row2 buttone 1'}, {text: 'row2 button2'}]   
  7.     ],   
  8.     bbar[{text: 'button one'}, {text: 'button two'}],   
  9.     rowbbar: [       
  10.         [{text: 'row1 buttone 1'}, {text: 'row1 button2'}],       
  11.         [{text: 'row2 buttone 1'}, {text: 'row2 button2'}]   
  12.     ]
  13. });

screenshot:

 

more discussion: http://www.extjs.com/forum/showthread.php?t=94762

2
2
分享到:
评论

相关推荐

    Extjs 4.11 重写 Panel 添加 click事件

    在ExtJS 4.11框架中,Panel是常见的组件之一,用于构建用户界面的容器。Panel经常被用作其他组件的容器,如按钮、表格、表单等。有时,我们可能需要对Panel进行自定义操作,比如监听并处理Panel上的点击事件。这涉及...

    Extjs自动最大化panel

    在EXTJS中,"Extjs自动最大化panel"是一种高级布局技术,它允许用户创建一个能够自动适应并填充其容器的面板(Panel)。这种特性对于构建响应式和自适应的用户界面至关重要,尤其在现代Web应用中,用户期望界面能够...

    extjs4.x tabpanel 动态加载panel和html例子

    this.add(panel).show(); // 添加并显示面板 this.setActiveTab(panel); // 设置当前活动的tab } ``` 3. **创建并添加panel** 当用户触发某个事件(如点击按钮)时,调用上面定义的`loadTab`函数,传入包含`...

    Extjs 重写Panel添加click事件

    在Ext JS这个强大的JavaScript框架中,Panel是一种常用的组件,用于构建复杂的用户界面。Panel提供了丰富的功能,包括布局管理、工具栏、标题、可配置性等。然而,有时我们需要对Panel进行自定义,例如添加或修改...

    一个简单的EXTJS Panel

    ### EXTJS Panel 知识点解析 #### 一、EXTJS Panel 概念与作用 在前端开发领域,特别是基于JavaScript框架的项目中,EXTJS是一个功能强大的企业级富客户端应用开发框架。它提供了大量的UI组件,使得开发者能够快速...

    ExtJs:收集基于ExtJs扩展的一些控件

    首先,我们来看看“ExtJs:收集基于ExtJs扩展的一些控件”。这个文件可能是对一些自定义或第三方开发的ExtJs控件的概述,它可能包括了各种特定用途的组件,如日历控件、拖放功能、树形视图、图表插件等。这些控件...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    extjs grid.panel 项目 源码

    在"extjs grid.panel 项目 源码"中,我们可以深入理解如何利用ExtJS构建一个功能完备的数据网格。 Grid Panel是ExtJS中的一个核心组件,它允许开发者以表格的形式展示大量数据,并提供多种交互功能,如排序、分页、...

    Extjs4.0学习笔记

    Extjs4.0学习笔记.pdf 是电子书格式的,可以下载看看

    extjs tab panel

    ExtJS Tab Panel是Ext JS库中的一个核心组件,它用于创建具有多个标签页的应用界面,类似于浏览器中的标签页。在Web应用中,Tab Panel经常被用来组织和展示大量的信息,让用户能够在一个页面上轻松切换不同的内容...

    Extjs教程源码

    第二十六讲: EXTJS4.0的高级组件Panel和Layout上 第二十七讲: EXTJS4.0的高级组件Panel和Layout下 第二十八讲: EXTJS4.0的高级组件Chart上 第二十九讲: EXTJS4.0的高级组件Chart下 第三十讲: EXTJS4.0的Desktop使用...

    extjs5支持的Font Awesome中glyph值对应表下载

    http://fortawesome.github.io/Font-Awesome/cheatsheet/网页转化成的pdf 看到对应的图标就可以得到相应的glyph数字哦。简单易用,转化成pdf随时可以使用的哦 可以参照 ...

    Alien-Web-ExtJS-V3:Alien-Web-ExtJS-V3 的只读发布历史

    Alien::Web::ExtJS::V3 - ExtJS 3.x 源的 Perl 发行版 版本 ExtJS v3.4.11 (GPL) 概要 use Alien::Web::ExtJS::V3 '3.4.11'; my $dir = Alien::Web::ExtJS::V3-&gt;dir; print "ExtJS sources are installed in: $dir\...

    extjs 必填项目加*

    extjs 必填项目加*

    学习ExtJS Panel常用方法

    ### ExtJS Panel 常用方法详解 #### 一、属性介绍 在开始探讨 ExtJS Panel 的常用方法之前,我们先来了解一下与 Panel 相关的一些基本属性。 1. **frame**: - 类型:布尔类型(true 或 false) - 描述:此属性...

    EXTJS4.0视频教程配套代码

    第二十六讲:extjs4.0的高级组件panel和layout上 第二十七讲:extjs4.0的高级组件panel和layout下 第二十八讲:extjs4.0的高级组件chart上 第二十九讲:extjs4.0的高级组件chart下 第三十讲:extjs4.0的desktop...

    extjs动态生成model、store、panel

    extjs动态生成model、store、panel;sql拼接等多种技术难点

    解决 extjs2.2 给tree-panel 添加 checkbox 的add-on

    标题提到的“解决extjs2.2给tree-panel添加checkbox的add-on”正是为了解决这个问题,提供了一个扩展插件,使得用户可以在Tree Panel的节点上添加复选框。 这个扩展插件包含了以下几个关键文件: 1. **...

    extjs3 swfupload panel

    EXTJS3 SWFUpload Panel是一种在EXTJS3框架下实现的多文件上传解决方案。EXTJS是一个流行的JavaScript库,用于构建富客户端应用,而SWFUpload则是一个基于Flash的文件上传插件,它允许用户在不刷新页面的情况下进行...

Global site tag (gtag.js) - Google Analytics