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

Ext TabPanel items高度宽度自适应(转)

阅读更多

写Ext的时候经常会遇到一些莫名其妙,令人感到非常神奇的问题,甚至都没办法用语言去描述它,搞的人想请教一下百度或Google都不知道该去怎么问,简直能够令人发疯。
先来看张截图吧。

 

 

有没有注意到里面的GridPanel很难看?因为它被它外面的那个Panel给“压迫”了,它伸展不开,呵呵。接着看看当前的JS代码。

Ext.onReady(function(){
  var grid = new Ext.grid.GridPanel({
 
    columns: [
 
      {header: '商品编号'},
      {header: '商品名称'},
      {header: '商品单价'},
      {header: '订购数量'},
      {header: '合计'}
    ],
    store: new Ext.data.JsonStore({}),
    bbar: new Ext.PagingToolbar({})
  });
  var panel = new Ext.Panel({
 
    items: [{
 
      autoHeight: true,
      contentEl: 'topPanel'
    },{
 
      xtype: 'tabpanel',
      activeTab: 0,
      items: [{
 
        title: '商品明细',
        items: grid
      },{
 
        title: '会员资料'
      },{
 
        title: '收货人信息'
      },{
 
        title: '寄件人信息'
      },{
 
        title: '发票信息'
      }]
    }]
  })
})

怎么改呢?如果我为GridPanel的高度宽度设置一个死值问题肯定是可以解决的,但是这样无法适应不同的分辨率及浏览器的大小。这是autoHeight为true没用,在它的bodyStyle中设置高度为100%也同样没用。GridPanel有一个viewConfig配置选项,如果它的父容器(商品明细)的layout为fit,那么可以通过设置viewConfig的forceFit为true使它占满父容器。
GridPanel修改成这样:

var grid = new Ext.grid.GridPanel({
 
   columns: [
 
     {header: '商品编号'},
     {header: '商品名称'},
     {header: '商品单价'},
     {header: '订购数量'},
     {header: '合计'}
   ],
   viewConfig: {
       forceFit: true
   },
   store: new Ext.data.JsonStore({}),
   bbar: new Ext.PagingToolbar({})
 });

它所在的Panel修改成这样:

{
  title: '商品明细',
  layout: 'fit',
  items: grid
}

清空缓存,刷新一下,晕了,还是没变。%>_<%
为什么还是不行呢?其实GridPanel已经占满它的父容器了,问题是它的父容器并没有占满其自身的父容器(就是TabPanel)。接着修改,设置panel的layout为border,令其顶部panel的region为north,而tabpanel的region则为center,这样就都填充满了。

 

Ext TabPanel

完整代码如下:

Ext.onReady(function(){
  var grid = new Ext.grid.GridPanel({
 
    columns: [
 
      {header: '商品编号'},
      {header: '商品名称'},
      {header: '商品单价'},
      {header: '订购数量'},
      {header: '合计'}
    ],
    viewConfig: {
        forceFit: true
    },
    store: new Ext.data.JsonStore({}),
    bbar: new Ext.PagingToolbar({})
  });
  var panel = new Ext.Panel({
 
    layout: 'border',
    items: [{
 
      region: 'north',
      autoHeight: true,
      contentEl: 'topPanel'
    },{
 
      region: 'center',
      xtype: 'tabpanel',
      activeTab: 0,
      items: [{
 
        title: '商品明细',
        layout: 'fit',
        items: grid
      },{
 
        title: '会员资料'
      },{
 
        title: '收货人信息'
      },{
 
        title: '寄件人信息'
      },{
 
        title: '发票信息'
      }]
    }]
  })
})

 

 

来源:http://www.ineeke.com/archives/ext-tabpanel-items-highly-adaptive-width/

  • 大小: 40.5 KB
  • 大小: 54.1 KB
分享到:
评论

相关推荐

    WPF tab宽度自适应 可关闭

    以下将详细讲解如何实现“WPF TabControl”的可关闭功能以及宽度自适应。 一、添加可关闭按钮 1. 创建一个新的`TabItem`模板:首先,我们需要创建一个自定义的`DataTemplate`,在其中添加一个可以关闭的按钮。通常...

    可以拖拽的页签面板----Ext TabPanel

    在EXT JS这个强大的JavaScript框架中,`Ext.TabPanel` 是一个非常重要的组件,它用于创建具有可切换页签的用户界面。在这个特定的例子中,我们关注的是一个扩展版的`Ext.TabPanel`,它增加了拖放(DragDrop)功能,...

    tapestry4.02中封装ext的TabPanel组件

    在本文中,我们将深入探讨 Tapestry 4.02 框架中封装的 Ext TabPanel 组件。Tapestry 是一个开源的Java Web 应用程序开发框架,它允许开发者使用简单的Java类和模板语言来创建动态、交互式的Web应用。而 Ext 是一个...

    Ext中TabPanel的动态页面加载

    在EXT JS这个强大的JavaScript库中,`TabPanel`是一个核心组件,用于实现多标签页界面。本篇文章将深入探讨如何在EXT JS的`TabPanel`中实现动态页面加载,这在构建可扩展且高效的Web应用时非常关键。通过动态加载,...

    ext-------竖向标签TabPanel

    竖向标签TabPanel-------------------------------------------------

    ext的tabpanel的激活与注意事项

    var tabPanel = Ext.getCmp('myTabPanel'); // 获取tabpanel实例 var desiredTab = Ext.getCmp('myDesiredTab'); // 获取目标选项卡实例 tabPanel.setActiveTab(desiredTab); // 激活目标选项卡 ``` 在这个例子中,...

    extjs4.2.1 tabPanel刷新及关闭标签

    this.tabPanel.items.each(function(item) { if (item !== activeItem && item.closable) { this.tabPanel.remove(item); } }, this); } ``` 在此函数中,首先获取当前激活的标签页,然后遍历`TabPanel`中的...

    treepanel 和 tabpanel 完整

    在本文中,我们将深入探讨`TreePanel`和`TabPanel`这两个重要的Ext JS组件,并讨论如何将它们结合在一起,以创建功能丰富的用户界面。`TreePanel`用于展示层次结构的数据,而`TabPanel`则提供了多标签页的功能,两者...

    ExtJS-3.4.0系列:Ext.TabPanel

    `width`和`height`分别定义了组件的宽度和高度。 接着,我们向`TabPanel`添加了两个面板(`items`): ```javascript tabs.add({ title: '标题 1', html: '内容 1' }); tabs.add({ id: Ext.id(), title: '...

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

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

    ExtJS扩展:垂直页签tabPanel

    在CSS中,我们需要调整原有的TabPanel样式,例如更改tab的位置、方向、宽度和高度,以及处理滚动条等。文件中可能包含对`.x-tab-bar`, `.x-tab` 和 `.x-tab-active` 等类的定制,以实现垂直方向的显示。 `scroll-...

    Extjs4.2 根据不同的数值设置tabpanel行的背景颜色

    var tabPanel = Ext.create('Ext.tab.Panel', { width: 600, height: 300, items: [ { title: 'Value Table', layout: 'fit', items: Ext.create('MyApp.view.MyGrid') } ] }).render(Ext.getBody()); })...

    Ext.TabPanel

    TabPanel的使用,添加tab,加载页面,添加事件

    ExtJS TabPanel beforeremove beforeclose使用说明

    centerPanel = new Ext.TabPanel({ // ... listeners: { beforeremove: function(ct, component) { return false; // 阻止Panel被移除 } } }); ``` 然而,仅仅阻止`beforeremove`事件并不足以实现关闭确认...

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

    Extjs4.2 设置tabpanel当前活动页签的样式 Extjs是一个流行的JavaScript框架,用于构建丰富互联网应用程序(RIA)。其中,tabpanel是Extjs中一个常用的控件,用于显示多个面板。设置tabpanel当前活动页签的样式是...

    ExtJS tabPanel实例

    在JavaScript代码中,这通常会涉及创建一个新的对象,并配置相应的属性,如宽度、高度、边框等。 ```javascript var tabPanel = Ext.create('Ext.tab.Panel', { width: 800, height: 600, renderTo: Ext.getBody...

    ExtJS TabPanel 标签操作

    创建一个基本的TabPanel需要指定` xtype: 'tabpanel' `,并可以通过`items`属性来添加初始的面板。例如: ```javascript Ext.application({ name: 'MyApp', launch: function () { Ext.create('Ext.container....

    jQuery模仿ExtJS之TabPanel最新

    TabPanel(选项卡组件) 参数说明 renderTo| jQuery object | NULL&gt; 渲染到某容器 将选项卡组件渲染到某容器,参数类型可以为字符串,也可以为jQuery所加载的对象,如果为声明该参数,组件默认的承载容器为BODY。 ...

    ext 的拖拽示例,很不错的

    ext拖拽示例,可以通过ext生成的layout自动拖拽,效果很不错的

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

    在本文中,我们将深入探讨ExtJS库中的两个关键组件:TreePanel和TabPanel,并结合实际测试情况来理解它们如何协同工作。ExtJS是一款强大的JavaScript框架,用于构建富客户端应用程序,而TreePanel和TabPanel是其核心...

Global site tag (gtag.js) - Google Analytics