2011-11-17 16 views
3

在我的ExtJS 4 Grid中,我想在加載記錄時動態設置高度。ExtJS 4> Grid>動態設置高度以適合任意數量的記錄

例如:

  1. 如果我的網加載52條記錄,那麼它應該顯示所有52條同時記錄(無網格中的任何滾動條)。

  2. 如果我的網格加載73條記錄,那麼它應該同時顯示所有73條記錄(網格中沒有任何滾動條)。

即我不需要網格中的任何滾動條。相反,我想用瀏覽器的滾動條代替。

有沒有人有解決方案?

+0

我們需要知道的是什麼版本? – JamesHalsall

+0

我正在使用ExtJS版本4. – Ahsan

+0

檢查此問題http://stackoverflow.com/questions/6758298/autoheight-problem-in-extjs4 –

回答

3

你必須處理對網格的存儲負擔的事件,然後通過

youGrid.getStore().on('load', function anonym(){ 
    myGrid.setHeight(this.getCount() * 16); // to be calculated 
} 

當然改變網格的高度,你必須調整這個網格的所有父容器

+0

這很有幫助。 – Ahsan

+0

我的一些細胞跨越2-3行,我該如何計算? – digz6666

2

如果u不要爲網格指定高度屬性。這將解決它。

+0

這適用於我,似乎是最簡單的解決方案。它還解決digz6666的問題「我的一些細胞跨越2-3行,我該如何計算?」 –

1

感謝您的幫助, 這是答案,但如果你是在網格初始化之外,像這樣的接縫比較合適:

myGrid.getView().on('refresh', function() { var cellheight = 28; var titleHeight = 50; myGrid.setHeight(myGridStore.getCount() * cellheight + titleHeight); });

0
Ext.create('Ext.grid.Panel', { 
    id: "empDetails", 
    store: store, 
    columns: [{ 
     text: "Name", 
     dataIndex: 'Name' 
    }, { 
     text: "Age", 
     dataIndex: 'Age' 
    }], 
    renderTo: 'example-grid', 
    forceFit: true, 
    width: 300, 
    ***getTotalHeight: function() { 
     return "auto"; 
    },*** 
    dockedItems: [{ 
     xtype: 'toolbar', 
     items: [{ 
       text: 'Employee Details' 
      } 

     ] 
    }] 

});