2017-04-08 37 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; 
    } 
] 
相关问题