`
atian25
  • 浏览: 467728 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS TabPanel 移动标签页

阅读更多

如下代码...

做完后我发现... 还不如记录下新的顺序.然后把tabpanel里面的全部标签页移除,再按新的顺序一个个的加回来...

 

 

Ext.onReady(function(){
  Ext.BLANK_IMAGE_URL = '/images/s.gif';
  Ext.QuickTips.init();
  testTabMove();
});

function testTabMove(){
  var tab = new Ext.TabPanel({
    activeTab:1,
    items:[
      {title:'xx1',html:'xxx1'},
      {title:'xx2',html:'xxx2'},
      {title:'xx3',html:'xxx3'},
      {title:'xx4',html:'xxx4'},
      {title:'xx5',html:'xxx5'}
    ],
    /**
     * 返回指定index对应的Panel
     * @param {number} index
     * @return {Panel} 
     */
    getTabByIndex:function(index){
      return this.items.itemAt(index);
    },
    /**
     * 返回指定index对应的标签页的Element对象
     * @param {number} index
     * @return {Ext.Element}
     */
    getStripByIndex:function(index){
      return Ext.get(this.getTabEl(this.getTabByIndex(index)));
    },
    /**
     * 返回指定的panel在tabpanel里面的index
     * @param {Ext.Panel} p
     * @return {number}
     */
    getTabIndex:function(p){
      return this.items.indexOf(p);
    },
    /**
     * 把某个Tab向左或向右移动
     * @param {string/panel} tab 要移动的tab的panel对象或者它的index
     * @param {number} dir 方向,负数为向左,正数为向右
     */
    moveTab:function(tab,dir){
      var srcIndex = Ext.isNumber(tab) ? tab : this.items.indexOf(tab);
      var targetIndex = srcIndex + dir;
      if(targetIndex>=0 && targetIndex<this.items.getCount()){
        var targetTab = this.items.itemAt(targetIndex);
        var targetStrip = Ext.get(this.getTabEl(targetTab));
	var srcTab = this.items.itemAt(srcIndex);
        var srcStrip = Ext.get(this.getTabEl(srcTab));
        //互换item的位置
        this.items.items[srcIndex] = targetTab;
        this.items.items[targetIndex] = srcTab;
        //互换Strip的位置
        dir<0 ? srcStrip.insertBefore(targetStrip): srcStrip.insertAfter(targetStrip);
        //清理
        targetTab=null;
        targetStrip=null;
	      srcTab=null;
        srcStrip=null;
        tab=null;
      }
    }
  });

  var f = new Ext.form.NumberField({value:'1',width:30});
  var p = new Ext.Panel({
    title:'::移动TabPanel测试::',
    items:[tab],
    renderTo:document.body,
    height:300,
    width:500,
    tbar:[
      '移动距离:',f,'-',{
        text:'左移',
        handler:function(){
          tab.moveTab(tab.getActiveTab(),-1*parseInt(f.getValue()));
        }
       },{
        text:'右移',
        handler:function(){
          tab.moveTab(tab.getActiveTab(),parseInt(f.getValue()));
        }
       }
    ]
  })
}

 

给个截图,免得大漠又说我:

 


 

 

  • 大小: 13.7 KB
分享到:
评论
3 楼 xia635317478 2012-09-21  
好东西,我借用一下,看看能不能实现在panel中上下移动panel~
2 楼 atian25 2011-08-15  
嗯,4.x中tabpanel的tab是一个component了
1 楼 yyq745201 2011-08-15  
貌似在extjs4.0以前都是不支持选项卡拖动的

相关推荐

    ExtJS TabPanel 标签操作

    ExtJS的TabPanel是其组件库中的一个核心组件,用于创建具有多个标签页的应用界面,每个标签页可以承载不同的内容。在本主题中,我们将深入探讨如何操作ExtJS的TabPanel,包括创建、添加、删除和切换标签页,以及...

    extjs动态添加tabpanel标签页支持pannel嵌入

    extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以

    Extjs4.2 设置tabpanel当前活动页签的样式

    其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部容器。 在上面的代码中,我们使用了CSS选择器来...

    extjs4.2.1 tabPanel刷新及关闭标签

    在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式进行切换展示。在版本4.2.1中,`TabPanel`提供了丰富的API和方法来控制其行为,...

    ExtJS tabPanel实例

    在ExtJS中,`tabPanel` 是一个非常重要的组件,它允许你在一个容器内创建多个标签页,每个标签页可以承载不同的内容,提供了类似桌面应用的用户体验。在实际开发中,`tabPanel` 经常被用来组织和展示复杂的信息。 `...

    ExtJS TabPanel beforeremove beforeclose使用说明

    在ExtJS中,TabPanel是常用的组件,用于展示多个面板(Panel)并提供标签页切换功能。当用户尝试关闭TabPanel中的某个Panel时,我们可能需要执行一些验证或确认操作,例如弹出对话框询问用户是否真的要关闭当前页面...

    ExtJS-3.4.0系列:Ext.TabPanel

    `Ext.TabPanel`允许开发者在单个容器中组织多个面板或视图,每个面板都有自己的标题,并且可以通过标签页进行切换。让我们通过代码示例和详细解释来理解其工作原理。 首先,`Ext.TabPanel`是`Ext.container....

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

    首先,我们需要创建一个tabpanel实例,并配置其属性,如`activeTab`(默认激活的标签页)和`layout`(布局方式,通常为`card`)。 ```javascript Ext.create('Ext.tab.Panel', { renderTo: Ext.getBody(), // ...

    ext的tabpanel的激活与注意事项

    EXTJS的tabpanel是其组件库中的一个重要组成部分,用于创建具有多个选项卡的用户界面,每个选项卡代表一个独立的视图或工作区。在EXTJS应用中,tabpanel提供了灵活的布局管理和用户交互功能,使开发者能够构建高效且...

    ExtJS效果Tabs形式

    在描述中提到的"ExtJS效果Tabs形式"指的是使用ExtJS实现的标签页(Tabs)布局。这种布局方式在Web应用中非常常见,用于组织和展示多个相关的视图或内容区域。在本文中,我们将深入探讨如何使用ExtJS创建和管理标签页...

    TabPanel 加载页面

    4. **模板和数据绑定**:在Web开发中,`TabPanel`的每个标签页可能由模板定义,而模板与数据模型进行绑定。例如,使用Angular或Vue.js时,可以通过数据绑定将JSON对象映射到视图。 5. **源码解析**:在标签中提到了...

    Ext的Tab标签封装

    在ExtJS中,TabPanel是核心组件之一,用于实现多页面或区域的切换效果,类似于Web应用中的标签页。"Ext的Tab标签封装"指的是使用ExtJS库创建的TabPanel组件,它允许用户在一个区域内通过点击不同的标签来展示不同的...

    TabPanel布局

    在ExtJS框架中,TabPanel布局是一种常用的组件布局方式,常用于创建带有多个标签页的应用界面,每个标签页可以承载不同的内容。在这个例子中,开发者使用了Ext3.0版本来构建一个包含多个区域(north, south, east, ...

    extjs tab panel

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

    再探Ext中TreePanel控件和TabPanel控件搭配测试

    当用户点击TreePanel中的节点时,可以触发事件,切换到对应的TabPanel标签页,或者在当前标签页内更新内容。这样的设计使得用户能够更有效地组织和导航数据。 在测试这种结合使用的情况时,我们需要关注以下几个...

    extjs4.0.7后台管理框架

    EXTJS4.0.7的TabPanel组件支持这一特性,每个标签页可以包含不同的组件或视图,提供灵活的工作空间管理。开发者可以通过编程或用户交互来添加、删除和切换标签页,提高后台管理的效率和用户体验。 EXTJS4.0.7后台...

    Ext中的tabpanel关闭后再打开不显示的问题

    在Ext框架中,`TabPanel`是一个非常重要的组件,用于实现页面中的多标签页功能。然而,在实际应用过程中可能会遇到一个常见问题:当某个标签页被关闭后,如果尝试重新打开该标签页,则可能会出现无法正常显示的情况...

    ext tab

    标题“ext tab”可能指的是EXTJS库中的TabPanel组件,这是一种在Web应用中常用的功能,用于展示多个视图或页面,用户可以通过标签页在不同内容间切换。EXTJS是一个用JavaScript编写的富客户端UI框架,它提供了丰富的...

    Extjs做的treepanel+tab切换页

    在"Extjs 做的treepanel+tab切换页"这个项目中,我们主要关注的是如何利用ExtJS 3.2版本来创建一个具备折叠面板(Collapsible Panel)功能的树形视图(TreePanel),以及与之联动的选项卡(TabPanel)。这个设计允许...

Global site tag (gtag.js) - Google Analytics