2010-09-28 171 views
9

我正在开发一个项目,我在页面上有一个GridPanel。面板可以显示任意数量的行,并且我设置了autoHeight属性,这会导致GridPanel展开以适合行数。我现在想要一个水平滚动条,因为在某些分辨率下并不是所有的列都显示出来(我不能减少列的数量)。ExtJS中的垂直滚动条GridPanel

如果我设置autoHeight我没有水平滚动条,如果我不将它设置,并设置固定高度我有一个水平滚动条,但很明显的GridPanel不适合的行数....

有什么我可以解决这个问题吗?我似乎无法找到能够实现我所需结果的财产。

回答

1

这似乎是您的布局设置问题,而不是对象属性。

尝试将父容器的布局属性设置为'fit',您还可以提供代码摘录吗?

+0

就像我说的,我只有网页面板和没有布局容器。我是新来的所有这些ExtJS的东西,所以我可能错过了一些东西,我需要在网格面板周围使用容器,它的工作权利? – JDT 2010-09-29 18:21:28

1

正如Ergo所说,这很可能是一个布局问题 - GridPanel可能比包含它的面板要高,显然不够高,不需要滚动条但不完全可见。将GridPanel放入具有适当布局的容器中,即边界布局,适合布局或卡布局。让布局经理正确使用通常是ExtJS-Fu中最难的部分之一。

5

我的想法是在包含网格的面板上设置autoScroll: true

7

你会发现在你的网格面板上放置一个父容器(Ext.panel.Panel或任何容器)是成功的。如果在父容器上硬编码高度,宽度和布局(以“适合”),则子项(Ext.grid.Panel)将展开以填充其父容器中可用的整个空间。

请参阅第80和81页的Ext JS 4 Web应用程序开发指南

您可以使用'Ext.grid.Panel'的惰性实例化表示法。含义使用'网格'为您的子容器(物品)xtype属性。

Ext.create('Ext.panel.Panel', { 
    title: 'parent container', 
    width: 800, 
    height: 600, 
    layout: 'fit', 
    items: { 
     xtype: 'grid', 
     title: 'child container', 

     ... define your grid here 

    }, 
    renderTo: 'grand parent container' 
}); 
0

加入

viewConfig = { 
     scroll:false, 
     style:{overflow: 'auto',overflowX: 'hidden'} 
    } 

有时会导致一个错误用展示2个滚动条。为了防止在我的情况下,我添加了一个监听器。然后工作正常。

this.on('scrollershow',function(scroller,orientation,eOpts){ 
     if (orientation=='vertical'){ 
      scroller.hide();     
     } 
},this);