2017-04-08 41 views
1

我正在用Ext.js構建我的第一個平臺,我想知道如何指定我的Gridpanel的行數限制。我想從商店在我的Gridpanel上只顯示10行

只顯示最後10個值。在那一刻,我收到的所有值從商店,和我填充這個值的網格,

我可以使用這樣的:

gridStore.remove(gridStore.getAt(i)) 

但因爲我使用這家店加載地圖上也有些折線,我不能從商店中刪除數據,所以我必須要隱藏行,而不是從商店中刪除數據的。

我的商店:

Ext.define('ES.store.Timeline', { 
    extend: 'Ext.data.Store', 
    alias: 'store.timeline', 
    storeId: 'timeline', 
    fields: [ 
     'vid', 'time', 'lat', 'lng', 'address', 'dir', 'vel', 'hidden' 
    ], 
    pageSize: 500, 
    autoSync:true, 
    sorters: [ 
      { 
       property: 'time', 
       direction: 'DESC' 
      } 
     ], 
    data: { 
     query: []}, 

    proxy: { 
     type: 'sessionstorage', 
     id: 'sessionTimeline', 
     reader: { 
      type: 'json', 
      rootProperty: 'query' 
     } 
    }, 
    filters: [{ property: 'hidden', value: false }] 
}); 

我網

Ext.define('ES.view.Layout.Menu.Menu', { 

    extend: 'Ext.grid.Panel', 
    alias: 'widget.timelineBar', 
    controller: 'menu', 
    viewModel: 'menu', 
    pageSiz: '10', 
    id: 'timelineBar', 
    autoScroll: true, 
    title: 'Timeline', 
    store: { 
     type: 'timeline' 
    }, 

    columns: { 
     border: false, 
     defaults: { 
      hoverCls: '' 
     }, 

     items: [{ ... 
     }] 
    } 
}); 

謝謝

回答

2

pageSize是商店的屬性,而不是網格(和您在代碼中有錯字 - pageSiz)。

我想你可以使用memory proxy而不是會話存儲代理enablePaging。你也可能需要Ext.toolbar.Paging

檢查此fiddle

+0

我不知道這是如何隱藏行......不是所有的行都是在店裏,如果你使用的內存的代理... – Alexander

+0

@Alexander,我只是猜測,這個解決方案能夠適應話題開始的需求。最終,我們解決業務問題而不是具體的編程任務。 –

0

使用pageSize store.if屬性如果您只想顯示10條記錄。

但如果你想顯示最後10條記錄,那麼你必須通過過濾器。

filters: [ 
    function(record) { 
     <condition> 
     return true/false; 
    } 
] 
相關問題