2010-09-28 40 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);